【问题标题】:How to write to the next blank line in a document?如何写入文档中的下一个空白行?
【发布时间】:2015-04-06 14:15:28
【问题描述】:

我有一个基本的 Java Web 浏览器,每次我访问一个新站点时,都会有一条记录存储在 ArrayList 中。我的程序当前所做的是在每个会话关闭后将每个元素写入新行,但是当一个新会话启动然后关闭时,它会覆盖上一个会话创建的文本。

我想知道的是如何让 BufferedWriter 查找文档中的下一个空白行并从那里开始写入,这样就不会覆盖任何文本并保留持久的网络历史记录?

这是我的 write 方法的代码:

//This method writes the current sessions' history to a text document, so a persistent history is kept

private void WriteHistory() throws Exception {

    FileWriter writer = new FileWriter(outPath);
    BufferedWriter textWriter = new BufferedWriter(writer);
    for(int i = 0; i < URLBar.history.size(); i++) {
      textWriter.write(URLBar.history.get(i));
      textWriter.newLine();
    }
    textWriter.close();

}

【问题讨论】:

    标签: java swing text bufferedwriter


    【解决方案1】:

    最简单的方法是使用 FileWriter(File file, boolean append) 构造函数。

    FileWriter writer = new FileWriter(outPath, true);
    

    这只会将文本添加到文件中已有的任何文本中。

    【讨论】:

    • 如何将 ArrayList 中的每个元素换行?否则效果很好!
    • 您的代码应该已经这样做了。请描述会发生什么?
    【解决方案2】:

    在 textWriter.close(); 之前你可以通过 textWriter.write("\n");

    在你覆盖之前检查新行

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-25
      • 1970-01-01
      • 2018-10-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多