2016-08-29 7 views
0

フォルダに格納されているファイルResourcesにアクセスしようとしています。リソースファイルを読むNetbeans

マイプロジェクトツリーは次のようになります。私は、ファイルにアクセスするには、以下に示すコードを使用しています

Project Tree

。このsimilar questionをチェックしましたが、私の場合はソリューションが動作していません。

File file = new File(getClass().getClassLoader().getResource("/Resources/High_Scores.txt").getFile()); 

しかし、私はNULLPointerExceptionを得ています。私はこの文脈でこの例外をはっきりと理解していません。誰かが間違っていることを指摘できますか?

アップデート:私はこれまでのコードに変更した場合

File file = new File(getClass().getClassLoader().getResource("Resources/High_Scores.txt").getFile()); 

を私はFILENOTFOUNDExceptionを取得します。

InputStream stream = Board.class.getResourceAsStream("/Resources/high.txt"); 
    BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); 
    StringBuilder out = new StringBuilder(); 
    String line; 
    while ((line = reader.readLine()) != null) { 
     out.append(line); 
    } 
    System.out.println(out.toString()); //Prints the string content read from input stream 
    reader.close(); 

を(あなたがBoardクラスからファイルを読み取るために呼び出していると仮定します)、またはあなたが使用することができますあなたの代わりにこのような新しいFile()InputStreamを使用することができますファイルを読み込むための

+0

@ Tunakiこの質問はその質問に続くものです。あなたはその質問の答えを試したが、まだ問題に直面しているのを見ることができません。 –

+0

ここで試しているようにJARの内部にあるリソースに 'File'としてアクセスすることはできません。これは単純に機能しません。リンクされた質問に示すように、 'InputStream'を使用する必要があります。 – Tunaki

+0

ありがとうございます。今度は、このような質問に答えて、重複をマークする代わりに - - –

答えて

0

ClassLoaderオブジェクト

File file = new File(ClassLoader.getSystemResource("/Resources/high.txt").getFile()); 

特定のディレクトリにフォルダが含まれている場合

File file = new File(ClassLoader.getSystemResource("/Resources/high.txt").toURI()); 
+0

'File'メソッドを使いたいです。確かにファイルを使ってファイルを読み書きする方法があります。私はまた、この入力ストリームメソッドは私のために動作しませんので、書き込みたいと思います。 –

+0

@MohsinAneesは、更新の回答 –

+0

を見て、NULLPointerExceptionがまだ発生しています。 @ Tunakiは、JARの内部でファイルを使用することはできないと言っていますか? –

関連する問題