我使用txt文件,使用PrintWriter类创建它们。这允许我使用println(...)
方法在txt文件中打印一些内容。
但现在我需要在我创建的列表末尾添加一些内容。像这样:
PrintWriter writer = new PrintWriter("File.txt", "UTF-8");
writer.println("Hello");
writer.println("Josh!");
writer.close();
结果是这样的文件:
您好
约什!
但如果我想在文字底部添加新单词怎么办?我希望覆盖文件" File.txt"内容更新?
你好
约什!
你好吗?
我正在想类似的事情,"好的我必须在最后添加另一行,所以读取所有文件,然后写另一个文件(具有相同的名称和内容)在最后添加一个新行& #34;,但这似乎太奇怪了,我觉得还有另一种简单的方法可以做到。还有其他想法吗?
答案 0 :(得分:1)
你的怀疑是正确的。
您应该使用try with resources
(Java 7 +):
try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("File.txt", true)))) {
out.println("How are you?");
}catch (IOException e) {
//exception handling left as an exercise for the reader
}
FileWriter constructor
的第二个参数将告诉它附加到文件(而不是清除文件)。对于昂贵的编写器(即FileWriter),建议使用BufferedWriter,并且使用PrintWriter可以访问您可能从System.out中习惯使用的println语法。但是BufferedWriter和PrintWriter包装并不是绝对必要的。
此外,这允许您在每次运行时附加到文件,而不是替换整个文件。最后,尝试使用资源意味着您不必致电.close()
,它就是为您完成的! Grabbed from here
答案 1 :(得分:1)
您可以简单地使用FileWriter,它有一个可以启用的附加模式:
FileWriter writer = new FileWriter("File.txt");
writer.write("Hello\n");
writer.write("Josh!\n");
writer.close();
writer = new FileWriter("File.txt", true);
writer.append("Great!");
writer.close();