如何将数据从文本文件导入JTextArea?

时间:2011-01-28 00:57:46

标签: java swing file-io jtextarea

我有一个包含10行信息的文本文件。如何在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);

3 个答案:

答案 0 :(得分:1)

您需要使用Append()将您阅读的每一行复制到JTextArea组件的末尾。

  

追加

     

public void append(String str)追加   给定的文本到结尾   文献。如果模型是什么都没有   null或字符串为null或空。   但这种方法是线程安全的   大多数Swing方法都没有。请参阅   如何使用线程获取更多信息   信息。

     

参数:str - 要插入的文本   另请参见:insert(java.lang.String,   INT)

你的for循环将变为:

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

答案 1 :(得分:1)

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

答案 2 :(得分: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或更高(我将把它留作实施练习如果你需要它!)