写入文件而不删除旧数据

时间:2012-12-18 18:06:52

标签: java file-io

  

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

我想在java中编写一个文件而不清除(删除)该文件中的旧数据!

我运行此代码,看到每次运行后都清理了.txt文件中的所有旧数据!

我的代码在这里:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

public class WriteToFileExample {

public static void main(String[] args) {
    try {

        String content = "This is the content to write into file";

        File file = new File("/users/mkyong/filename.txt");

        // if file doesnt exists, then create it
        if (!file.exists()) {
            file.createNewFile();
        }

        FileWriter fw = new FileWriter(file.getAbsoluteFile());
        BufferedWriter bw = new BufferedWriter(fw);
        bw.write(content);
        bw.close();

        System.out.println("Done");

    } catch (IOException e) {
        e.printStackTrace();
    }
}
}

4 个答案:

答案 0 :(得分:14)

使用构造函数FileWriter(String filename, boolean append)可以指示文件以追加模式打开:

FileWriter fw = new FileWriter(file.getAbsoluteFile(), true);
                                                     //^^^^ means append

答案 1 :(得分:3)

尝试

FileWriter fw = new FileWriter(file, true);

注意:第二个参数意味着追加;不需要file.getAbsoluteFile(),只需文件就可以了

答案 2 :(得分:3)

以追加模式打开文件。 像

PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("outfilename", true)));

答案 3 :(得分:1)

FileWriter接受一个布尔参数,指定是否覆盖。

试试这个:

FileWriter fw = new FileWriter(file.getAbsoluteFile(),true);

也访问:

http://docs.oracle.com/javase/6/docs/api/java/io/FileWriter.html#FileWriter%28java.io.File,%20boolean%29