2011-01-28 79 views
1

我有一個包含10行信息的文本文件。如何將該信息粘貼到JTextArea中?如何將數據從文本文件導入JTextArea?

public void createPage4() 
    { 
    panel4 = new JPanel(); 
    panel4.setLayout(new BorderLayout()); 

    BufferedReader log=null; 

     try { 


     FileReader logg =new FileReader("logsheet.txt"); 
      log = new BufferedReader(logg); 

     textArea = new JTextArea("how do I get all the content of logsheet, I can get it on the command window as shown below"); 




     for (int x = 0 ; x<10; x++){ 

      System.out.println(log.readLine()); 

      } 


      panel4.add(textArea); 
+0

沒有必要重新發明輪子。只需使用所有文本組件支持的read(...)方法即可。 – camickr 2011-01-28 01:36:01

回答

1

您需要使用Append()複製每次讀給你JTextArea組件的端線。

追加

公共無效的append(字符串str)追加 給定文本的 文檔的末尾。如果模型爲 null或者字符串爲空或空白,則不執行任何操作。 此方法是線程安全的,儘管 大多數Swing方法都不是。請參閱 如何使用線索獲取更多 信息。

參數:str - 要插入文本 另請參見:插入(java.lang.String中, INT)

您的循環將變爲:

for (int x = 0 ; x<10; x++){ 
    textArea.append(log.readLine() + "\n"); 
} 
+0

@razshan,請解釋爲什麼你會編寫自己的代碼並重新發明輪子,當這個功能已經是API的一部分時?我想如果你需要編寫數據,你也將創建你自己的write()方法,而不是使用屬於API的方法。這不是學習如何編程的方法。 – camickr 2011-01-28 16:42:15

0

類似於下面的東西應該這樣做:

BufferedReader reader = new BufferedReader(new FileReader("logsheet.txt")); 
String line; 
while((line = reader.readLine()) != null) { 
    textArea.append(line).append("\n"); 
} 
reader.close(); 

這裏您正在閱讀文件的全部內容(所以不管它有多少行),將內容附加到字符串生成器,然後將文本區域設置爲字符串生成器的內容。 (在完成之後請記住關閉閱讀器也很重要)。

以上內容將附加到文本區域。如果您想先清除它,請在while循環前添加textArea.setText("");

如果您想確保只讀取前10行,請添加一個計數器,在while循環的每次迭代中遞增計數,如果計數爲10或更大,則退出(如果實施練習if你需要它!)

1
textArea.read(new BufferedReader(new FileReader("logsheet.txt"), null)); 
+0

簡單而有效。 – 2011-01-28 02:27:43