使用行分隔符将JTextArea中的内容保存到文件中

时间:2016-06-04 11:38:52

标签: java lines filewriter bufferedwriter

我写文件时遇到问题。

一般来说,我正在创建简单的文本编辑器。我以这种方式加载文件:

try(BufferedReader br = new BufferedReader(new FileReader(currentlyEditedFile))) {
            String line = "";
            editor.setText("");
            while((line = br.readLine()) != null) {
                editor.append(line + "\n");
            }
        } catch(Exception ex) {
            ex.printStackTrace();
        }

经过一些修改后,我想将其保存(写入)回文件。

我是这样做的:

try(PrintWriter pw = new PrintWriter(new BufferedWriter(new FileWriter(currentlyEditedFile)))) {
            String[] lines = editor.getText().split("\\n");//Tried \n, \\n
            for(String s : lines)
                pw.println(s);
        } catch(Exception ex) {
            ex.printStackTrace();
        }

并且内容转到文件,但它都在一行中。任何想法如何逐行写?

2 个答案:

答案 0 :(得分:2)

您可以按照以下简单方式将文本文件的内容加载到JTextArea

 JTextArea textArea = new JTextArea();
 FileReader reader = new FileReader("D:/text1.txt");
 textArea.read(reader, "Content of File");
 reader.close();

您可以按照以下简单且独立于平台的方式将JTextArea的内容写入文件:

 PrintWriter pw=new PrintWriter("D:/text1.txt");
 textArea.write(pw);
 pw.close();

希望,这对你有帮助。

答案 1 :(得分:1)

如果您使用的是Windows,那么您应该这样做:

editor.append(line + "\r\n");

因为Windows中的换行符由\r\n表示,即回车符和换行符。