2014-04-29 56 views
0

我已經在Eclipse中創建一個Java項目,並加入了一些文本文件,如罐子的製作過程中的Java Eclipse文本文件如下無法添加

FileReader fin=null; 
BufferedReader bin=null; 
fin=new FileReader("src/main/resources/League.txt"); 
bin=new BufferedReader(fin); 

但創造ruunable罐子或只是簡單的罐子後,當我運行jar文件它顯示沒有找到文本文件或找不到路徑。但是我在項目的main.resource中添加了文本文件。如何處理它?

+2

路徑是在罈子裏不同http://stackoverflow.com/questions/941754/how-to-get-a-path-to-a-resource-in-a-java-jar-file – onesixtyfourth

+0

有你確認這些文件將它放入jar中? –

回答

0

確保在最新的Java版本目錄src \ main \ resources \ League.txt中有一個文件。例如,對於Windows,例如C:\ Program Files \ Java \ jdk1.7.0_25 \ src \ main \ resources \ League.txt。 您需要提供前斜線,而不是後面的。此外,這應該是代碼:

FileReader fin=null; 
BufferedReader bin=null; 
fin=new FileReader("src\\main\\resources\\League.txt"); // Because of Unicode restrictions. 
bin=new BufferedReader(fin); 

也許你檢查這個問題,以及: How to get a path to a resource in a Java JAR file

+0

但我必須創建一個我的項目的jar文件,將路徑獨立。那麼應該是什麼路線? – Pritam

+0

Jar文件破壞硬編碼路徑;通常您必須使用'____。class.getClassLoader()。getResource()'或'.class.getResource()'以及相對於_____位置的某個路徑來檢索文本文件。 (不知道這些語法是否正確,但我認爲它們相當接近) – awksp

0

使用URLClassLoader.getSystemResourceAsStream,這部作品在罐子和月食...

0

試試這個。即使該文件位於src/resources中,也不需要在路徑中說src文件夾。

BufferedReader br = null; 

try { 

    String sCurrentLine; 

    URL url = ClassLoader.getSystemResource("resources/League.txt"); 
    br = new BufferedReader(new InputStreamReader(url.openStream())); 

    while ((sCurrentLine = br.readLine()) != null) { 
     System.out.println(sCurrentLine); 
    } 

} catch (IOException e) { 
    e.printStackTrace(); 
} finally { 
    try { 
     if (br != null)br.close(); 
    } catch (IOException ex) { 
     ex.printStackTrace(); 
    } 
}