【问题标题】:How to append new line in an existing file?如何在现有文件中追加新行?
【发布时间】:2018-11-28 20:25:15
【问题描述】:

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

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

        }
        catch(IOException e){

        }

示例:问题:富​​兰克林·罗斯福的名字首字母是什么? userInput: RED typeOfAnswer 将是错误的:错误

我从一个文件中得到我的问题和真实答案,然后我将真实答案与 userInput 进行比较,看看 typeOfAnswer 是否错误/正确。我想在文件中输出问题、userInput 和 typeOfAnswer,但我有多个问题,因此我想在新行上分别输出最终结果。

【问题讨论】:

  • 你得到什么异常?
  • textToAppend += System.lineSeparator();
  • @EmreSavcı 我没有遇到任何异常,但如果我尝试这样创建 textToAppend:textToAppend = "\n"+question+userInput+","+typeOfAnswer 我不会在新行中获得新信息。
  • @Andreas 试过..我有同样的问题..我得到这样的东西:By what initials was Franklin Roosevelt better known?RED,wrongWhich number president was Franklin Roosevelt?RED,wrong。 wrong 和 Which 没有区别
  • @Ryk 您在 Windows 上,使用记事本显示文件内容吗?如果是这样,请注意记事本无法将 \n 识别为行尾标记。仅限\r\n

标签: java file newline printstream


【解决方案1】:

如评论:

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

文件内容

By what initials was Franklin Roosevelt better known?RED,wrong
Which number president was Franklin Roosevelt?RED,wrong

运行程序 3 次后的文件内容

By what initials was Franklin Roosevelt better known?RED,wrong
Which number president was Franklin Roosevelt?RED,wrong
By what initials was Franklin Roosevelt better known?RED,wrong
Which number president was Franklin Roosevelt?RED,wrong
By what initials was Franklin Roosevelt better known?RED,wrong
Which number president was Franklin Roosevelt?RED,wrong

【讨论】:

  • 如果我的文件已经存在怎么办?我必须放 StandardOpenOption.Create 吗?
  • StandardOpenOption.CREATE 表示它会创建文件如果它不存在。
猜你喜欢
  • 2013-11-21
  • 2017-04-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-08
  • 2023-03-31
  • 2020-11-23
  • 1970-01-01
相关资源
最近更新 更多