如JAVA文档中所述,变量'麻烦'只要有java.io.IOException,就会设置为true。我写了一个程序:
import java.io.*;
class First
{
public static void main(String[] args) throws Exception
{
File f = new File("a.txt");
PrintStream ps = new PrintStream(f);
f.delete();
ps.write(65);
boolean b = ps.checkError();
System.out.println(b); //Output: false
ps.close();
}
}
即使我在写入之前删除了文件,为什么方法checkError()没有返回true?请举例说明变量' trouble'设置为true,方法checkError()返回true。
答案 0 :(得分:1)
答案 1 :(得分:-2)
即使我在写入之前删除了文件,为什么方法checkError()没有返回true?请举例说明变量' trouble'设置为true,方法checkError()返回true。
您不知道自己删除了该文件,因为您没有检查File.delete()
的结果。
您创建的PrintStream
没有autoFlush
,因此println()
对文件系统不执行任何操作。
没有理由删除该文件会导致写入IOException
,即使它成功并且刷新了写入。例如,使用FileOutputStream
进行尝试。
你的问题基于三个错误的假设。