2017-08-18 11 views
0

私はMavenにプロジェクトを持ち、txtファイルを読むためのクラスを作成しました。 text.txtファイルには、単純な「Hello World」テキストが含まれています。 text.txtをresourcesフォルダーに入れてコードを実行すると、text.txtファイルが正常に読み取られます。しかし、私がリソース内にフォルダ名を作成した場合、名前はabcです。私はPOMに行くと追加しています:Mavenのリソースにサブフォルダを追加する方法

<Project> 
[...] 
<Build> 
     <Resources> 
       <Resource> 
         <Directory>src/main/resources/</ directory> 
         <Includes> 
           <Include>abc/</ include> 
         </ Includes> 
       </ Resource> 
     </ Resources> 
</ Buil> 
[...] 
</ Project> 

し、フォルダ内のtext.txtファイルを配置:abcを。 NullPointerExceptionが解放されます。

私の質問は、これらのサブ記述をPOMに追加する方法です。

私のクラス:

public class Test { 

    public static void main(String[] args) { 
     new Test(); 
    } 

    public Test() { 

     try{ 

      InputStream in = getClass().getResourceAsStream("/text.txt"); 

      BufferedReader br = new BufferedReader(new InputStreamReader(in)); 

      String abc = br.readLine(); 

      System.out.println(abc); 

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

    } 

} 

maven

> Project |-- pom.xml 
>    `-- src 
>     `-- main 
>      `-- resources 
>        `-- abc 
>        |-- text.txt 
+0

account ... 'src/main/resources'の下にあるフォルダ構造全体が自動的に' target/classes'にコピーされ、最終的にjarファイルにパッケージ化されます。 – khmarbaise

+0

@khmarbaise私はテストを行いました。出来た!ありがとうございました。 – David

答えて

1

あなたのポンポンにサブフォルダABCを追加する必要はありません。 TEXT.TXTがABCフォルダ内にあるので、あなたはこのようにそれにアクセスします。に取られているのsrc /メイン/ resources` `のサブディレクトリを持つように補足設定を行う必要はありませんされて

InputStream in = getClass().getResourceAsStream("/abc/text.txt");

+0

ありがとうございました! – David

関連する問題