3

MainClass.class.getResource("/Resources/file.extension")を使用してリソースを呼び出してFileのコンストラクターに渡すことにより、Javaアプリケーションでリソースを開こうとしていますgetPath()。次に、新しいものをで初期化するFileInputStreamFile、が得られますFileNotFoundException。完全なスタックトレースは次のようになります。

java.io.FileNotFoundException: E:\user\Documents\NetBeansProjects\Project name\build\classes\Resources\file.csv (The system cannot find the path specified)
    at java.io.FileInputStream.open(Native Method)
    at java.io.FileInputStream.<init>(FileInputStream.java:138)
    at my.secret.project.MainClass.main(MainClass.java:27)

これが私のコードです。

File file = new File(MainClass.class.getResource("/Resources/file.extension").getPath());

...

InputStream in = new FileInputStream(file);
4

1 に答える 1

5

コード全体を単純なものに置き換えることができます。

InputStream in = MainClass.class.getResourceAsStream("/Resources/file.extension");

使用する必要はありませんFile。実際、CLASSPATH上のファイルは、JAR / WAR内のある場所を指している可能性がありますが、これは間違いなく機能しません。詳細については、戦利品を持っていClass.getResourceAsStream()ます。

于 2012-10-04T17:13:31.373 に答える