Generated y.txt只包含line1为什么第2行是abcent
public class Writer{
public static void main(String[] args) {
try {
FileWriter fw = new FileWriter(new File("y.txt"));
PrintWriter pw1 = new PrintWriter(fw);
pw1.println ("line1 ");
pw1.close();
PrintWriter pw2 = new PrintWriter(fw);
pw2.println("line2 ");
pw2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
答案 0 :(得分:0)
关闭PrintWriter后,文件将关闭。
PrintWriter.close()
状态的Javadoc:"关闭流并释放与之关联的所有系统资源。关闭之前关闭的流无效。"
答案 1 :(得分:0)
您不需要两个PrintWriters,这是不必要的。您应该只为整个文件使用一个PrintWriter
public static void main(String[] args) {
try {
FileWriter fw = new FileWriter(new File("y.txt"));
PrintWriter pw1 = new PrintWriter(fw);
pw1.println ("line1 ");
pw1.println("line2 ");
pw1.close();
} catch (IOException e) {
e.printStackTrace();
}
希望这有助于
答案 2 :(得分:0)
查看close的文档,我们可以看到调用close
“关闭流并释放与之关联的所有系统资源 ”
这包括您的FileWriter fw
,因此,当您尝试使用fw初始化pw2时,由于在pw1上调用close()
,资源fw已经关闭。
答案 3 :(得分:0)
public void close() 关闭流并释放与其关联的所有系统资源。 关闭之前关闭的流无效。
因为您关闭了pw1,它是PrintWriter的第一个实例,它会关闭该帧中的所有实例。
快乐的编码!
哎呀没看到这已经得到了解答!