【问题标题】:How can I add new information to a .txt file without it removing any old data in java [duplicate]如何在不删除 java 中的任何旧数据的情况下向 .txt 文件添加新信息 [重复]
【发布时间】:2021-02-04 20:43:29
【问题描述】:

我想将所有销售额存储在一个 txt 文件中,但每次我输入新信息时都会删除旧信息。知道为什么吗?

try {
    BufferedWriter bfw = new BufferedWriter(new FileWriter(file1));
    BufferedWriter bfw1 = new BufferedWriter(new FileWriter(file2));

    bfw.write(Total.getText());
    bfw.newLine();

    String timeStamp = new SimpleDateFormat("yyyy.MM.dd.HH.mm.ss").format(new java.util.Date());
    bfw1.write(timeStamp);
    bfw1.newLine();

    bfw.close();
    bfw1.close();
} catch (IOException ex) {
    Logger.getLogger(FrmFacturas.class.getName()).log(Level.SEVERE, null, ex);
}

【问题讨论】:

    标签: java txt


    【解决方案1】:

    您必须以附加模式打开文件才能执行此操作,在 FileWriter 中添加 true 作为第二个参数

    BufferedWriter bfw = new BufferedWriter(new FileWriter(file1,true));
    

    【讨论】:

    • 谢谢,我试过了,但是没用
    • 似乎您希望附加时间戳尝试使用此代码 String textToAppend = "yourtimestamp"; //追加模式设为true BufferedWriter writer = new BufferedWriter(new FileWriter("c:/temp/samplefile.txt", true)); writer.write(textToAppend); writer.close();
    【解决方案2】:

    你可以给 FileWriter 构造函数添加第二个参数:

    BufferedWriter bfw = new BufferedWriter(new FileWriter(file1, true));

    你可以使用 Files.nio:

    Files.writeString(file1.toPath(), textToWrite, StandardOpenOption.APPEND)

    【讨论】:

    • 我试过这个文件 t = new File(file1); Files.writeString(t.toPath(), Total.getText(), StandardOpenOption.APPEND);但没有工作我在 writeString 中遇到错误
    • 你遇到了什么错误?
    • 它与 fileriter 一起工作,比你好!
    • 你能把这个设置为接受的答案吗? :-)
    猜你喜欢
    • 2017-09-23
    • 1970-01-01
    • 1970-01-01
    • 2013-07-12
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2023-03-24
    • 2021-08-01
    相关资源
    最近更新 更多