Java 将多行字符串保存到文本文件,而不覆盖以前的文本

Java 将多行字符串保存到文本文件,而不覆盖以前的文本,java,string,file,text,Java,String,File,Text,好的,我正在尝试将一个多行字符串保存到一个文本文件中,而不覆盖前面的文本。println完美地打印了它,但保存到文本文件似乎只保存了第一行 到目前为止我拥有的(写入时不覆盖,但只写入第一行): 这个问题的答案可能很简单,但我是Java新手。您应该尝试bufferedWriter.flush()这是一段代码片段,可能会对您有所帮助 import java.io.BufferedWriter; import java.io.FileWriter; import java.io.IOException

好的,我正在尝试将一个多行字符串保存到一个文本文件中,而不覆盖前面的文本。println完美地打印了它,但保存到文本文件似乎只保存了第一行

到目前为止我拥有的(写入时不覆盖,但只写入第一行):


这个问题的答案可能很简单,但我是Java新手。

您应该尝试
bufferedWriter.flush()这是一段代码片段,可能会对您有所帮助

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteIntoFile {

    public static void main(String[] args) {
        String multilineString = "This is line 1\nthis is line 2\nthis is last line";
           try {
               FileWriter fileWriter = new FileWriter("multiline.txt", true);

               BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
               bufferedWriter.write(multilineString + "\n");
               bufferedWriter.flush();
               bufferedWriter.close();
               fileWriter.close();
           } 
           catch(IOException e) {
               e.printStackTrace();
           }

    }

}

我不确定我是否理解你的问题。您正在将单个字符串写入文件。您希望发生什么?您正在编写一个字符串。根据您的代码,如果您继续向文件中写入单个字符串,新内容将不断追加。我希望这就是你想要的?那么您面临的问题是什么呢?我想让它将整个字符串(字符串中有多行)写入一个文本文件,但它当前只写入第一行。编辑:修复了问题,是其他原因阻止了它的写入。
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;

public class WriteIntoFile {

    public static void main(String[] args) {
        String multilineString = "This is line 1\nthis is line 2\nthis is last line";
           try {
               FileWriter fileWriter = new FileWriter("multiline.txt", true);

               BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);
               bufferedWriter.write(multilineString + "\n");
               bufferedWriter.flush();
               bufferedWriter.close();
               fileWriter.close();
           } 
           catch(IOException e) {
               e.printStackTrace();
           }

    }

}