附加.txt文件正在删除所有内容

时间:2015-04-26 20:52:20

标签: java

import java.io.FileWriter;
import java.io.PrintWriter;

public class DemoPrint {

    public static void main (String args []) {


        try{

            PrintWriter coolFile = new PrintWriter("c:\\JavaIO\\cool.txt");
            FileWriter file = new FileWriter("c:\\JavaIO\\cool.txt", true);

            coolFile.println("Why isn't this adding another line?");
            coolFile.close();
        }
        catch (Exception e) {
            System.out.println("Error");
        }

}
    }

所以我是编程/ java的新手,我正在尝试打开这个文件并附加数据并添加另一行,但出于某种原因,数据被删除并被{{1中的任何内容覆盖}}

任何人都可以帮我解决这个问题吗?我知道它可能很容易解决......我正在学习......谢谢!

2 个答案:

答案 0 :(得分:4)

您在同一个文件上同时打开PrintWriterFileWriter。这两者并不相关 - 它们是访问同一文件的两个点(这是你真的不应该做的事情)。

PrintWriter的打开已经完成而没有附加,因此它破坏了文件的所有内容。然后你去打开另一个“视图” - FileWriter,并设置为追加,但此时,它不再有任何东西可以将附加到

正确的方法是创建PrintWriter,以便FileWriter 支持。文件上没有两个视图 - 一个视图位于另一个视图上。

PrintWriter coolFile = new PrintWriter( new FileWriter("filename", true ) );

答案 1 :(得分:0)

这就是你应该如何将printwriter与文件写入器一起使用:

FileWriter fw = new FileWriter("c:\\JavaIO\\cool.txt",true);
BufferedWriter bw = new BufferedWriter(fw);
PrintWriter coolFile = new PrintWriter(bw);
coolFile.println("This is adding another line.");
coolFile.close();