2016-04-12 3 views
0

私はすべての提案を試みましたhere、しかし私のために働いていないようです。

File file = new File("assets/files/textFile.txt"); 
if (!file.exists()) { 
    throw new FileNotFoundException("File does not exist"); 
} 
FileReader fr = new FileReader(file.getAbsoluteFile()); 
BufferedReader br = new BufferedReader(fr); 

私はこれを実行しようとすると、例外が毎回スローされます。ここで私が現在使用しているコードです。

+0

重複するhttp://stackoverflow.com/questions/3369794/how-to-read-a-file-from-jar-in-java – Nadir

+0

「assets/files」がリソースパスに含まれている必要があります。あなたのClassLoaderでunitInfo.txtリソースを作成します。 – Aaron

+0

ファイルがクラスパス内にあるかどうかによって異なります。そうでない場合は、フルパスを指定する必要はありません。 – medveshonok117

答えて

0

このような非ファイルの用語は、リソースです。

String encoding = "UTF-8"; 
new BufferedReader(
    new InputStreamReader(YourClass.getResourceAsStream("/assets/files/textFile.txt"), 
     encoding)); 

また、FileReaderは、デフォルトのシステムエンコーディングを使用する古いユーティリティクラスです。これは、テキストファイルが作成された場所とは異なる可能性があります。そのため、UTF-8でエンコードされたUnicodeなどが理想的です。 Windowsユーザーの場合、ファイルをUTF-8:"\ufeff"とマークするために、先頭にBOM文字を書くことができます。

YourClassクラスはjarファイルである必要があります。絶対パスは "/ ..."となります。相対パスはパッケージパスから始まります。

また、Windowsでは大文字と小文字は区別されません。他のシステムとjarのzip形式では大文字と小文字が区別されます。適切なパスについては、zipユーティリティを使用してjarファイルを確認してください。

+0

私はこのソリューションを使ってみましたが、 'MyClass.getResourceAsStream'セクションで' can not find symbol 'というエラーが出ます。 – Dusk

+0

MyClassは、jarファイルの 'class MyClass {...}'でなければなりません。 –