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

Java 使用行分隔符将内容从JTextArea保存到文件中,java,lines,filewriter,bufferedwriter,Java,Lines,Filewriter,Bufferedwriter,我写文件有问题 通常我会创建简单的文本编辑器。我以这种方式加载文件: try(BufferedReader br = new BufferedReader(new FileReader(currentlyEditedFile))) { String line = ""; editor.setText(""); while((line = br.readLine()) != null) { ed

我写文件有问题

通常我会创建简单的文本编辑器。我以这种方式加载文件:

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();
        }

内容会转到文件,但都在一行中。你知道如何逐行书写吗?

如果你使用的是Windows,那么你应该:

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

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

如果使用Windows,则应执行以下操作:

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

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

您可以通过以下简单方式将文本文件的内容加载到
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();

希望,这对您有所帮助。

您可以通过以下简单方式将文本文件的内容加载到
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();

希望,这对你有帮助。

你在使用windows吗?你在使用windows吗?很简单的方法,但效果与我的解决方案相同。将内容加载到JTextArea可以正常工作,但保存会将内容放在一行中。:)@DamDev请看原始文件。所有的东西都在一条线上吗?如果您使用
\r\n
它在linux上是否也会以同样的方式工作?实际上我已经在我的Windows系统上测试过了,它似乎工作得很好。是的,我的不好。只是加载了由Pravier方法生成的文件,可能这就是它不起作用的原因。我又试了一次,效果很好。谢谢!:)@DamDev请使用“记事本+++”之类的文本编辑器创建一个文本文件,然后运行我的解决方案。请告诉我你看到了什么。简单的方法很好,但效果和我的解决方案一样。将内容加载到JTextArea可以正常工作,但保存会将内容放在一行中。:)@DamDev请看原始文件。所有的东西都在一条线上吗?如果您使用
\r\n
它在linux上是否也会以同样的方式工作?实际上我已经在我的Windows系统上测试过了,它似乎工作得很好。是的,我的不好。只是加载了由Pravier方法生成的文件,可能这就是它不起作用的原因。我又试了一次,效果很好。谢谢!:)@DamDev请使用“记事本+++”之类的文本编辑器创建一个文本文件,然后运行我的解决方案。请告诉我你看到了什么。