2016-11-20 1 views
-2

Javaでファイルを読み取る方法の詳細については、src/main/resourcesディレクトリから読み取ることができません

現在、私は同じディレクトリからファイルを読み込みますいくつかのコードを持っている:

File file = new File(getClass().getResource(fileName).getPath()); 

    try (Scanner scanner = new Scanner(file)) { 

     while (scanner.hasNextLine()) { 
      String line = scanner.nextLine(); 
      result.append(line).append("\n"); 
     } 

     scanner.close(); 

    } catch (IOException e) { 
     e.printStackTrace(); 
    } 

私は、リソースディレクトリに自分のファイルを移動しようとすると、私の問題があります。

File file = new File(getClass().getClassLoader().getResource(fileName).getFile()); 

リソースディレクトリからInputStreamでファイルを読み取ることはできますが、そのようにすることは避けようとしています。ファイル変数は私が動作すると予想されるものですが、そうではありません。

ここからどこに行かなければならないのですか?

+2

* *あなたはそれを正しい方法を行うことを避けるためにしようとしているのはなぜ? – chrylis

+0

クラスはクラスに住んでいますか?あなたのファイルを '/ src/main/resources'の同じ(パッケージ)ディレクトリ構造で読み込むようにしました。 –

+0

ファイルをメモリに保存しないようにしようとしています。 –

答えて

0

これは私がこの問題を解決することになった方法です:

ClassLoader classLoader = getClass().getClassLoader(); 
File file = new File(classLoader.getResource("main/resources/" + fileName).getFile()); 
0
File file = new File(getClass().getResource("/"+fileName).getFile()); 

ファイルがsrc/main/resourcesフォルダのルートにあり、Mavenを使用している場合。

+0

それはまだjava.lang.NullPointerExceptionをスローします –

+0

問題があります。 src/main/resourcesは、プロジェクトでmaven(またはgradle)を使用しているときのリソースのデフォルトのクラスパスです。 – davidxxx

+0

あなたは読む必要があります:https://maven.apache.org/guides/introduction/introduction-to-the-pom.html – davidxxx

-1

以下を試してもよろしいですか? ClassLoader classLoader = ClassLoader.getSystemClassLoader(); File file = new File(classLoader.getResource(fileName).getFile());

+1

それでも同じNullPointerExceptionを返しました –

関連する問題