快速提问,如何在java中更新现有文件?当我打开这样的文件时:
try {
File inFile = new File("scores.txt");
BufferedReader br = new BufferedReader(new InputStreamReader(
new FileInputStream(inFile)));
删除该文件的所有原始内容。但我不希望它被删除,因为我需要这些信息。非常感谢。
答案 0 :(得分:3)
(缺少实际编写的代码并基于FileInputStream
的使用)
使用FileOutputStream
的两个参数构造函数之一,其第二个参数是boolean
,指示是否应该附加文件,而不是覆盖:
try
{
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(
new FileOutputStream("scores.txt", true)));
//^^^^ means append
答案 1 :(得分:2)
FileOutputStream或FileWriter的构造函数可以使用另一个布尔参数,该参数指示是否应将写入的数据附加到文件的末尾(而不是覆盖文件内容)。请看this link。
所以你可以这样做:new FileOutputStream(inFile, true)
,结果是文件的先前内容将保留,你写入流的任何内容都将附加到文件的末尾。
如果你想对文件进行更高级的更新(例如替换文件中的某些特定内容),据我所知,API中没有特定的方法可以做到这一点。我认为您必须从旧文件中读取,并将要保留的所有内容写入新文件,并将替换内容写入新文件。之后,您将删除旧文件并将新文件重命名为原始文件名。至少那是我的方式,但可能存在我不知道的更好的方法。