2014-11-23 151 views
0

我有一些方法從文件中讀取一些數據(實際上,它是公交時間)。
如何在JAR中部署文件?

public void readData(String number) throws IOException{ 
    InputStream fis; 
    BufferedReader br; 
    String line; 
    fis = new FileInputStream("n" + number); 
    br = new BufferedReader(new InputStreamReader(fis, Charset.forName("UTF-8"))); 
    while ((line = br.readLine()) != null) { 
     list.add(new Time(line)); 
    } 
    br.close(); 
} 

而我有我的文件到需要的信息項目。
但是! (我正在編寫Intellij IDEA,但在Eclipse中部署)
當我部署項目時,我的程序看不到這些文件。
我該怎麼辦?
正在考慮 fis = RaspFrame.class.getClassLoader().getResourceAsStream("n" + number); 對不對?

+1

那麼當你嘗試它會發生什麼? :)如果你認爲你有一個想法,請給它一個! – yts 2014-11-23 04:11:41

回答

0

「正想着:

fis = RaspFrame.class.getClassLoader().getResourceAsStream("n" + number); 

正確」

是的。這就是(粗略地說)在類路徑中打開流保存在JAR文件中的資源的方式。 (您的現有代碼實際上是從文件系統中讀取文件,它大概是在您的IDE中工作,因爲這些文件的副本保存在IDE項目目錄中,並且IDE正在使項目目錄是「當前目錄「當你運行程序。)