2011-01-28 42 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

相关问题