2014-08-31 113 views
0

我的代码有什么问题?我试图读取文本文件,然后将文本放到JTextArea,但其输入只包含最后一行文本。怎么了?将文本和输入文件的文本读取到JTextArea

代码

public void read() { 
    int returnVal = fc.showOpenDialog(null); 

    if (returnVal == JFileChooser.APPROVE_OPTION) { 
     File file = fc.getSelectedFile(); 
     pavadinimas = file.getName(); 
     try { 
      FileInputStream fstream = new FileInputStream(fc.getCurrentDirectory() + "/" + pavadinimas); 
      DataInputStream in = new DataInputStream(fstream); 
      BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
      String strLine; 
      while ((strLine = br.readLine()) != null) { 
       tekstas.setText(strLine); 
      } 
      in.close(); 
     } catch (Exception e) { 
      System.err.println("Error: " + e.getMessage()); 
     } 
    } 
} 

回答

1

,而不是使用的setText

+1

延伸:因为每次使用setText(...)都会覆盖文本。追加将新文本添加到此组件中的旧文本。 – pL4Gu33 2014-08-31 16:49:14

+0

好吧,它的工作。谢谢:) – Tadas 2014-08-31 16:53:47

+0

只需使用'JTextArea.read(...)'方法。 – camickr 2014-08-31 19:26:12

0

追加功能不要推倒重来。无需编写循环代码或将您自己的行尾字符串追加到您的头文件中。使用JTextArea.read(...)方法。