输出没有覆盖

时间:2012-11-04 01:27:25

标签: java io overwrite

是否可以在不覆盖以前数据的情况下将文本写入文件?

我一直做的是:

StringBuffer sb = new StringBuffer();
BufferedReader in;
PrintWriter out;

try{
    in = new BufferedReader( new FileReader("somefile.txt"));
    out = new PrintWriter( new FileWriter("somefile.txt"));

    String input = "";
    while(input != null){
        sb.append(input + "\n");
        input = in.readLine();
    }
    in.close()

    out.print(sb.toString());

    // now start doing what I want.

这是正确的方法吗?

2 个答案:

答案 0 :(得分:2)

查看FileWriter API。有一个接受布尔参数的构造函数 - 您可能希望使用它。

答案 1 :(得分:2)

您可以使用FileWriter的附加模式来避免覆盖现有数据:

new PrintWriter( new FileWriter("somefile.txt", true));