2013-03-23 76 views
0

我想打開保存在JAR中的.txt文件,並將其內容顯示在JTextArea中。以下是我嘗試使用的代碼;從JAR打開文本文件而不提取它 - 請幫助

URL urlToDictionary = this.getClass().getResource("eula/" + "eula.txt"); 
     try { 
     InputStream stream = urlToDictionary.openStream(); 
     gettysburgTextStrBlder = stream; 
     System.out.println(stream); 
    } catch (IOException e1) { 
     // TODO Auto-generated catch block 
     e1.printStackTrace(); 
    } 

我知道我是在正確的文件的位置,因爲我已經改變了周圍的.getResource路徑,看到零點例外,我沒有與當前文件的路徑。

的System.out的打印在運行時執行以下操作:

[email protected] 

我也曾嘗試;

gettysburgTextStrBlder = String.valueOf(stream); 

但我得到的結果是一樣的。

我想我已經快到了,但我不確定如何獲取.txt文件的實際內容,而不僅僅是緩衝流。

謝謝。

安迪

回答

3

你必須使用BufferedReader

URL urlToDictionary = this.getClass().getResource("eula/" + "eula.txt"); 
    try { 
    InputStream stream = urlToDictionary.openStream(); 
    BufferedReader br = new BufferedReader(new InputStreamReader(stream)); 
    String line = null; 
    StringBuffer lineContent = new StringBuffer(); 
    while((line = br.readLine()) != null){ 
     lineContent.append(line).append("\n"); 
    } 
    br.close(). 
    System.out.println(lineContent.toString()); 
} catch (IOException e1) { 
    // TODO Auto-generated catch block 
    e1.printStackTrace(); 
} 
+0

由於讀取文本區域的InputStream和顯示的內容,我必須失去了別的東西,該行lineConent.add(行) ; eclipse是說「方法add(String)是未定義的類型StringBuffer」 – andy 2013-03-23 13:22:51

+0

我的錯誤。它是'append'而不是'add'。更正了我的答案。 – 2013-03-23 13:41:46

+0

謝謝,完美的工作。有沒有一種方法可以從文本文件中檢測到回車符? JTextArea將文本全部顯示爲一行。 – andy 2013-03-23 13:50:16