如何在java中更新文件?

时间:2012-04-02 22:05:08

标签: java file

  

可能重复:
  How to append data to a file?

快速提问,如何在java中更新现有文件?当我打开这样的文件时:

 try {
              File inFile = new File("scores.txt");
              BufferedReader br = new BufferedReader(new InputStreamReader(
                  new FileInputStream(inFile)));

删除该文件的所有原始内容。但我不希望它被删除,因为我需要这些信息。非常感谢。

2 个答案:

答案 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中没有特定的方法可以做到这一点。我认为您必须从旧文件中读取,并将要保留的所有内容写入新文件,并将替换内容写入新文件。之后,您将删除旧文件并将新文件重命名为原始文件名。至少那是我的方式,但可能存在我不知道的更好的方法。