【问题标题】:Adding data to files [duplicate]将数据添加到文件[重复]
【发布时间】:2016-07-05 23:41:52
【问题描述】:
private void AddAccount(String usernamenew, String passwordnew) {
    final String FileName = "F:/TextFiles/loginaccs.txt";
    File file = new File(FileName);
        try {
            BufferedReader br = new BufferedReader(new FileReader(file));
            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
            bw.write(usernamenew);
            bw.newLine();
            bw.write(passwordnew);
            bw.newLine();
            bw.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
}

在这种方法中,我尝试将两行额外的行写入一个文本文件,即一个新的用户名和一个新的密码。

删除部分行后,程序将文本文件中的所有内容都删除,写了两行,这不是我想要的。

我做错了吗?提前致谢。

【问题讨论】:

  • 试试BufferedWriter bw = new BufferedWriter(new FileWriter(file),true);

标签: java


【解决方案1】:

在你写到BufferedWriter之后,对于文件,你关闭它,这很好。

但是,您随后会创建另一个 FileOutputStream。此外,您不应同时拥有同一文件的读取器和写入器。您需要做的就是创建 BufferedWriter,写入文件并关闭它。

private void AddAccount(String usernamenew, String passwordnew) {
    final String FileName = "F:/TextFiles/loginaccs.txt";
    File file = new File(FileName);

        try {
           // BufferedReader br = new BufferedReader(new FileReader(file));
            BufferedWriter bw = new BufferedWriter(new FileWriter(file));
            bw.write(usernamenew);
            bw.newLine();
            bw.write(passwordnew);
            bw.newLine();
            bw.close();

           // FileOutputStream fos = new FileOutputStream(file);      
           // fos.close();

           // br.close();

        } catch (IOException e) {
            e.printStackTrace();
        }
}

【讨论】:

  • 但是还有一个问题:它会删除文件中的所有内容并写入两行。有没有办法保留原文并添加新的?
  • 嗯,这是一个不同的问题,在这里已经得到了非常清楚的回答(而且很容易做到):stackoverflow.com/questions/1625234/…
猜你喜欢
  • 2011-07-28
  • 2011-01-22
  • 1970-01-01
  • 2018-06-07
  • 2019-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多