Java 从文本文件读取JTextPane

Java 从文本文件读取JTextPane,java,swing,oop,file-io,jtextpane,Java,Swing,Oop,File Io,Jtextpane,我有一个.txt文件,它有3行 我的GUI代码是 txtpnEmergencyAmbulanceAnd = new JTextPane(); try { // FileReader reads text files in the default encoding. FileReader fileReader = new FileReader(fileNumbers); // Always wrap FileRea

我有一个.txt文件,它有3行

我的GUI代码是

txtpnEmergencyAmbulanceAnd = new JTextPane();
     try {
            // FileReader reads text files in the default encoding.
            FileReader fileReader = new FileReader(fileNumbers);

            // Always wrap FileReader in BufferedReader.
            BufferedReader bufferedReader = new BufferedReader(fileReader);
            while((lineNumbers = bufferedReader.readLine()) != null) {
    txtpnEmergencyAmbulanceAnd.setText(lineNumbers);
        }
            // Always close files.
            bufferedReader.close();            
        }

     catch(FileNotFoundException ex) {
            System.out.println(
                "Unable to open file '" + 
                fileNumbers + "'");                
        }
     catch(IOException ex) {
            System.out.println(
                "Error reading file '" 
                + fileNumbers + "'");      
     }
然而,打印到我的GUI中的只是最后一行。我想把这三行都打印出来 我还将此作为一项全球计划

String fileNumbers = "numbers.txt";

String lineNumbers = "";

setText
准确地将组件文本设置为您传递给它的值,丢弃它以前拥有的任何内容

相反,尝试使用


仅供参考:为了更好地管理您的资源,您可能需要更仔细地了解一下

setText
确实将组件文本设置为您传递给它的值,丢弃它以前拥有的任何内容

相反,尝试使用


仅供参考:为了更好地管理您的资源,您可能需要仔细查看一下,因为每次跑步时都会覆盖
JTextPane

快速而肮脏的解决方案:

txtpnEmergencyAmbulanceAnd.setText(txtpnEmergencyAmbulanceAnd.getText() + lineNumbers);

是的,因为每次运行时都会覆盖
JTextPane
的内容

快速而肮脏的解决方案:

txtpnEmergencyAmbulanceAnd.setText(txtpnEmergencyAmbulanceAnd.getText() + lineNumbers);

String
串联在循环中不是一个好主意,当然是三行,但是使用
StringBuilder
不仅是一个好的实践,而且在这种情况下,它也会更有效,因为您不必将
文档
转换为
字符串
,您必须设法忽略我的“解决方案”的前缀是“快而脏”。作为一个专业论坛,我们真的应该避免“快而脏”“因为它会导致坏习惯,然后需要把这些坏习惯从人们身上打掉……除了擦伤;)这是可行的,但它并没有将这三条线分开。它将三行合为一行。是的,因为您必须自己处理换行。
String
串联在循环中不是一个好主意,当然是三行,但是使用
StringBuilder
不仅是一个很好的实践,而且在这种情况下,它也会更有效,由于您不必将
文档
转换为
字符串
,因此您必须设法忽略我的“解决方案”中的“快速和肮脏”前缀。作为专业人士的论坛,我们确实应该避免“快速和肮脏”,因为它会导致坏习惯,然后需要将这些坏习惯从人们身上赶走……省去伤痕;)这是可行的,但它并没有将这三条线分开。是的,因为您必须自己处理换行操作。
txtpneurgencyAmbunceand.read(bufferedReader,filenumber)
但是,这只打印我的最后两行。显然,在.txt文件中我的第一行的顶部添加了一个空行修复了这个问题。
txtpneurgencyAmbulanceand.read(bufferedReader,filenumber)但是,这只打印我的最后两行。显然,在.txt文件中我的第一行的顶部添加一个空行修复了这个问题。