learning_this_now:
私は私のクラスのいずれかの分岐予測器を実装していると私は、Eclipseでの私のsrcフォルダからファイルを読み込むしようとしていますが、何らかの理由でファイルを開くことができません。私は確信して異なっているものではないよので、私はまったく同じプロセスで前にこれを行っています。
traceFileには、コマンドラインから設定されていると私は、「入力」を印刷する場合、それが正しいファイルパスをプリントアウトし、私はそれは手動であり確認しています。
ClassLoader loader = BiModalPredictor.class.getClassLoader();
File input = new File(loader.getResource(traceFile).getFile());
Scanner fin = new Scanner(input);
これが起こっかもしれない理由として任意の洞察力はありますか?私は、ファイルを更新、Eclipseを再起動しようとしました、私も働いていた別のプログラムでそれをテストしてみました。それを見つけることができない理由は考えません。このファイルを。
アンドレアス:
クラスローダのを介して利用可能なつまり、クラスパス上のリソース、getResource
アプリケーションがjarファイルとして展開、または一般的に配備されている場合の方法は、ファイルシステム上のファイルではありません。使用しないでください。File
代わりに使用し、そのようなリソースとgetResourceAsStream
リソースのコンテンツにアクセスします。
また、あなたのコードが間違っています。getResource()
返しますURL
。あなたがしたい場合File
からオブジェクトをURL
、あなたが使用する必要があるnew File(uri)
場合には、URI
呼び出すことによって得られますurl.toURI()
。
File input = new File(loader.getResource(traceFile).toURI());