提问人:Stefan 提问时间:11/11/2020 更新时间:11/12/2020 访问量:274
为什么当我直接写入文件时,PrintWriter 中没有自动刷新参数?
Why is there no autoflush parameter in PrintWriter when I write to file directly?
问:
由于是缓冲的,我们需要刷新其数据或使用自动刷新(布尔参数)。如果我们不这样做,我们的数据将仅在整个缓冲区已满时写入。PrintWriter
我们可以做这样的事情:
PrintWriter pw = new PrintWriter (new FileWriter ("test.txt"));
pw.println ("hello");
pw.flush ();
或者像这样使用自动冲洗:
PrintWriter pw = new PrintWriter (new FileWriter ("test.txt"),true);
pw.println ("hello");
我的问题如下:为什么如果我直接写入文件,则没有这样的自动刷新选项?因此,如果我这样做,它将无法编译:PrintWriter
PrintWriter pw1 = new PrintWriter ("test.txt",true);
//'Cannot resolve constructor 'PrintWriter(java.lang.String, boolean)'
pw1.println ("hey");
为什么我们没有提供这种类型的构造函数?我错过了什么吗?如果我直接写入文件,我必须在不存在的情况下手动使用方法。很奇怪,不是吗?flush()
autoflush
答:
评论
close()
flush()