记事本中的打开文本文件的功能:JFileChooser openFileChooser = new JFileChooser();
openFileChooser.setDialogTitle("请选择文件...");
//设置名字
openFileChooser.showOpenDialog(null);//null表示用默认属性
openFileChooser.setVisible(true);

//得到用户选择的文件绝对路径
String fileName = openFileChooser.getSelectedFile().getAbsolutePath();
//字符流用bufferReader
BufferedReader br = null;
String allContent = "";
try {
            br = new BufferedReader(new InputStreamReader(new FileInputStream(
                    fileName), "utf-8"));
            String line = "";            
            while ((line = br.readLine())!= null) {                                               
             if(!line.equals("\r\n"))
             allContent += line+ "\r\n";
            }
            jta.setText(allContent);
            
        }catch (Exception e1) {
        } finally {
            try {
                if (br != null)
                    br.close();
            } catch (IOException e2) {
            }
        }
}
}每次读完一行都会多输出一行空行:
比如说文件是这样的:
--------------------------------------
哈哈哈哈
哈哈哈哈哈哈哈哈
--------------------------------------
读到JTextArea中的文本就会是:
--------------------------------------
哈哈哈哈哈哈哈哈哈哈哈哈
--------------------------------------
因为windows中的换行是\r\n
所以bw.readline()遇到\r就会停止然后换行,遇到\n又换行,所以会多输出一个空行,
请问这种情况该如何解决!(文本中的空行要原样输出空行)
JavaStringWindows

解决方案 »

  1.   


    while ((line = br.readLine())!= null) {                                                                                                
                                        if(!line.equals("\r\n"))
                                            allContent += line+ "\r\n";
                                    }这段代码可以解决每行多输出空行的问题,但是遇到原有的空行就不输出空行了!
      

  2.   

    使用 DefaultEditorKit的read/write读写文件