2017-11-20 12 views
0

私はObjectOutputStreamを使用して、プロジェクトの.imlファイルと同じディレクトリにあるファイルにオブジェクトを書き出しました。ファイルが存在します。何らかの理由で、FileInputStreamを使って読むことができません。私は、ファイルscene.dodgeは、プロジェクトのルートディレクトリにあることを確認作ったIntelliJ IDE - ルートプロジェクトディレクトリのFileNotFound例外

File sceneFile=new File("scene.dodge"); 
FileInputStream fin=new FileInputStream(sceneFile); 
ObjectInputStream in=new ObjectInputStream(fin); 
return (Scene)(in.readObject()); 

:私は次のように2 私のコードがある行にするFileNotFound例外を受け取ります。助言がありますか?私はコンパイラのリソースパターンを使いこなそうとしましたが、それが何かをするかどうかはわかりません。私は単純に困っている。

答えて

0

現在のディレクトリからファイルを読み取るには、ClassLoader# getResource methodを使用する必要があります。 ロードは、この

URL dodgeSceneURL = classLoader.getResource("scene.dodge"); 
File sceneFile = new File(dodgeSceneURL.toURI()); 
FileInputStream fin = new FileInputStream(sceneFile); 
+0

のようなファイルは、私が試した:URL sceneURL = Scene.class.getClassLoader()のgetResource(パス); なんらかの理由で、これでもnullpointerexceptionが発生しました – TinFellow

+0

classLoaderはどこでインスタンス化されていますか?私は単にこれを理解していないのではないかと心配しています。 – TinFellow

+0

@TinFellow 'this.getClass()。getClassLoader()' thats classLoaderを取得する方法、それは関係ないので、私はコード全体を投稿しませんでした。 –

関連する問題