Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java PrintStream对象的checkError()方法在什么条件下返回true?_Java_Io_Printstream - Fatal编程技术网

Java PrintStream对象的checkError()方法在什么条件下返回true?

Java PrintStream对象的checkError()方法在什么条件下返回true?,java,io,printstream,Java,Io,Printstream,正如JAVA文档中所给出的,每当出现JAVA.io.IOException时,变量“trouble”就会设置为true。我写了一个程序: import java.io.*; class First { public static void main(String[] args) throws Exception { File f = new File("a.txt"); PrintStream ps

正如JAVA文档中所给出的,每当出现JAVA.io.IOException时,变量“trouble”就会设置为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。

根据:

checkError
返回
true
当且仅当此流遇到
IOException
以外的
InterruptedIOException
或已调用该方法时

即使我在写之前删除了文件,为什么方法checkError()没有返回true?请给出一个例子,当变量'trouble'设置为true时,方法checkError()返回true

  • 您不知道您删除了该文件,因为您没有检查
    file.delete()
    的结果

  • 您正在创建的
    PrintStream
    没有
    autoFlush
    ,因此
    println()
    对文件系统没有任何影响

  • 没有理由认为删除文件会导致写入时出现
    IOException
    ,即使删除成功并刷新了写入。例如,用
    FileOutputStream
    试试


  • 你的问题建立在三个错误的假设上。

    什么是
    MyPrintStream
    ?删除一个文件然后写入它对于任何程序来说都很简单。尝试删除一个文件,然后从中读取:-)什么是
    MyPrintStream
    1。文件正在被删除,我使用Thread.sleep(5000)在GUI中查看它。2.我使用autoFlush作为true并传递了换行符,结果是一样的。3.第三点是正确的。我使用了DataOutputStream,这也不会引发异常。现在我的疑问是,试图在已删除的文件上写入内容如何不会导致任何异常?@mynameisGYAN这就给你留下了两个有缺陷的假设。他认为删除该文件导致了
    IOException
    。他没有,但他是这么想的。