Java 如何在现有文件中追加新行?

Java 如何在现有文件中追加新行?,java,file,newline,printstream,Java,File,Newline,Printstream,在我添加完我应该添加的内容后,我应该如何添加新行。 我有以下代码: try{ String textToAppend = question+userInput+","+typeOfAnswer; Files.write(Paths.get("save.txt"), textToAppend.getBytes(), StandardOpenOption.APPEND); } catch (NoSuchF

在我添加完我应该添加的内容后,我应该如何添加新行。 我有以下代码:

        try{
            String textToAppend = question+userInput+","+typeOfAnswer;
            Files.write(Paths.get("save.txt"), textToAppend.getBytes(), StandardOpenOption.APPEND);
        }
        catch (NoSuchFileException e){

        }
        catch(IOException e){

        }
示例:问题:富兰克林·罗斯福的名字缩写是什么?用户输入:红色类型的回答将错误:错误

我从一个文件中得到我的问题和真实答案,然后将真实答案与用户输入进行比较,看看答案的类型是否正确。我想将问题、userInput和TypeOfAnwer输出到一个文件中,但我有多个问题,因此我想在每一行上输出最终结果。

如注释所示:

证明

文件内容

富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了 运行程序3次后的文件内容

富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了 富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了 富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了 如注释所示:

证明

文件内容

富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了 运行程序3次后的文件内容

富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了 富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了 富兰克林·罗斯福的名字缩写是什么?瑞德,错了 富兰克林·罗斯福是哪个号码的总统?红色,错了
您得到了什么异常?
textToAppend+=System.lineSeparator()
@EmreSavcı我没有得到任何例外,但如果我尝试创建如下文本:
textToAppend=“\n”+question+userInput+,“+typeOfAnswer
我不会在新行中获得新信息。@Andreas尝试过..我也有同样的问题..我得到这样的东西:
富兰克林·罗斯福的缩写是什么?红色,错误哪一位总统是富兰克林·罗斯福?红色,错误
。错与错是分不开的Which@Ryk您是否在Windows上使用记事本显示文件内容?如果是这样,请注意记事本不会将
\n
识别为行尾标记。只有
\r\n
。会出现什么异常?
textToAppend+=System.lineSeparator()
@EmreSavcı我没有得到任何例外,但如果我尝试创建如下文本:
textToAppend=“\n”+question+userInput+,“+typeOfAnswer
我不会在新行中获得新信息。@Andreas尝试过..我也有同样的问题..我得到这样的东西:
富兰克林·罗斯福的缩写是什么?红色,错误哪一位总统是富兰克林·罗斯福?红色,错误
。错与错是分不开的Which@Ryk您是否在Windows上使用记事本显示文件内容?如果是这样,请注意记事本不会将
\n
识别为行尾标记。仅
\r\n
。如果我的文件已经存在怎么办?我是否必须放置StandardOpenOption.Create?
StandardOpenOption.Create
意味着如果文件不存在,它将创建该文件。如果我的文件已经存在,该怎么办?是否必须放置StandardOpenOption.Create?
StandardOpenOption.Create
意味着如果文件不存在,它将创建该文件。
textToAppend += System.lineSeparator();
import java.nio.file.*;

public class Test {
    public static void main(String[] args) throws Exception {
        save("By what initials was Franklin Roosevelt better known?", "RED", "wrong");
        save("Which number president was Franklin Roosevelt?", "RED", "wrong");
    }
    public static void save(String question, String userInput, String typeOfAnswer) throws Exception {
        String textToAppend = question + userInput + "," + typeOfAnswer;
        textToAppend += System.lineSeparator();
        Files.write(Paths.get("save.txt"), textToAppend.getBytes(), StandardOpenOption.APPEND, StandardOpenOption.CREATE);
    }
}