我有一个基本的Java Web浏览器,每次访问新站点时,其记录都存储在ArrayList中。我的程序当前所做的是在每个会话关闭后在新行上写入每个元素,但是当新会话启动然后关闭时,它会覆盖上一个会话创建的文本。
我想知道的是如何让BufferedWriter查找文档中的下一个空行并从那里开始编写,因此不会覆盖任何文本并保留持久的Web历史记录?
以下是我所使用的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();
}
答案 0 :(得分:1)
最简单的方法是使用FileWriter(文件文件,布尔附加)构造函数。
FileWriter writer = new FileWriter(outPath, true);
这只会将文本添加到文件中已有的任何文本中。
答案 1 :(得分:0)
在textWriter.close()之前;你可以创建一个新的Line by textWriter.write( “\ n”);
在你覆盖之前检查新线