如何在Java中将新行字符写入文件

2022-09-01 09:13:23

我有一个包含新行的字符串。我将此字符串发送到函数以将字符串写入文本文件,如下所示:

    public static void writeResult(String writeFileName, String text)
    {
        try
        {
        FileWriter fileWriter = new FileWriter(writeFileName);
        BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

        bufferedWriter.write(text);

        // Always close files.
        bufferedWriter.close();

        }
        catch(IOException ex) {
            System.out.println("Error writing to file '"+ writeFileName + "'");}
    } //end writeResult function

但是当我打开文件时,我发现它没有任何新行。当我在控制台屏幕中显示文本时,它会以新行显示。如何在文本文件中写入新的行字符。

编辑:假设这是我发送到上面的函数的参数:text

I returned from the city about three o'clock on that
may afternoon pretty well disgusted with life.
I had been three months in the old country, and was

如何在文本文件中按原样(使用新行)编写此字符串。我的函数将字符串写在一行中。你能为我提供一种将文本写入文件的方法,包括新行吗?

编辑2:文本最初位于.txt文件中。我使用以下内容阅读文本:

while((line = bufferedReader.readLine()) != null)
{
sb.append(line); //append the lines to the string
sb.append('\n'); //append new line
} //end while

哪里是字符串缓冲区sb


答案 1

编辑2中:

while((line = bufferedReader.readLine()) != null)
{
  sb.append(line); //append the lines to the string
  sb.append('\n'); //append new line
} //end while

您正在读取文本文件,并向其追加换行符。不要附加换行符,这不会在一些头脑简单的Windows编辑器(如记事本)中显示换行符。相反,请使用以下命令追加特定于操作系统的行分隔符字符串:

sb.append(System.lineSeparator()); (对于 Java 1.7 和 1.8Java 1.6 及更低版本)sb.append(System.getProperty("line.separator"));)

或者,稍后您可以使用 将 StringBuffer 中内置的字符串替换为特定于操作系统的换行符:String.replaceAll()"\n"

String updatedText = text.replaceAll("\n", System.lineSeparator())

但是在构建字符串时追加它比稍后追加和替换它更有效。'\n'

最后,作为开发人员,如果您使用记事本查看或编辑文件,则应将其删除,因为有更多功能强大的工具,例如Notepad ++或您喜欢的Java IDE。


答案 2

简单的解决方案

File file = new File("F:/ABC.TXT");
FileWriter fileWriter = new FileWriter(file,true);
filewriter.write("\r\n");