Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.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 用什么代替PrintWriter?_Java - Fatal编程技术网

Java 用什么代替PrintWriter?

Java 用什么代替PrintWriter?,java,Java,这是我的代码,非常简单,切中要害: public void sendMessage(String message) { writer.println(message); writer.flush(); } 我真的不喜欢使用PrintWriter,因为它会吞下IOExceptions,这是除了发送字节数组之外,我唯一使用它的功能。我可以使用什么来代替它,它不会使用IOExceptions,并且仍然可以为我提供PrintWriter的功能?如果您想保留PrintWriter并检查是

这是我的代码,非常简单,切中要害:

public void sendMessage(String message)
{
    writer.println(message);
    writer.flush();
}

我真的不喜欢使用PrintWriter,因为它会吞下IOExceptions,这是除了发送字节数组之外,我唯一使用它的功能。我可以使用什么来代替它,它不会使用IOExceptions,并且仍然可以为我提供PrintWriter的功能?

如果您想保留PrintWriter并检查是否发生了任何异常,可以使用PrintWriter的checkError()方法来执行此操作。例如,使用您自己的代码:

public void sendMessage(String message)
{
    try{
        writer.println(message);
    }finally{
           //checkError flushes the stream if it's not closed and checks its error state.
        if(writer.checkError()){ 
            //Your error handling code here
        }
    }
}
另一种方法是使用BufferedReader,正如@Thilo在其评论中所建议的那样。这同样取决于您希望保留的功能


在使用BufferedWriter实例的情况下,您需要使用write()方法,这些方法会引发IOException

如果您想保留PrintWriter并检查是否发生任何异常,可以使用PrintWriter的checkError()方法执行此操作。例如,使用您自己的代码:

public void sendMessage(String message)
{
    try{
        writer.println(message);
    }finally{
           //checkError flushes the stream if it's not closed and checks its error state.
        if(writer.checkError()){ 
            //Your error handling code here
        }
    }
}
另一种方法是使用BufferedReader,正如@Thilo在其评论中所建议的那样。这同样取决于您希望保留的功能


在使用BufferedWriter实例的情况下,您需要使用write()方法,这些方法会引发IOException

我建议使用普通的
编写器
缓冲编写器

public void writeMessage(BufferedWriter bw, String message) throws IOException {
    bw.write(message);
    bw.newline();
    bw.flush();
}


但显然,这取决于您希望保留的
PrintWriter
的功能。

我建议使用普通
Writer
BufferedWriter

public void writeMessage(BufferedWriter bw, String message) throws IOException {
    bw.write(message);
    bw.newline();
    bw.flush();
}


但显然,这取决于您希望保留的
PrintWriter
的哪些功能。

您需要哪些功能?线路馈电?格式化?自动冲水?我想没有什么不吞咽的例外。如果try/catch如果您尝试/catch,可以使用封装try的静态方法/catch@mulax:他不是抱怨它抛出异常,而是它不抛出异常-你必须使用
checkError()
进行查询。我想,不会消耗==不会throw@mulax粗略地说。。。抛出异常会产生异常-消费与生成相反。不会消耗!=我不会扔。(实际上,我们在这里没有术语,有点松散。严格地说,我们应该谈论异常传播或被捕获。)您需要哪部分功能?线路馈电?格式化?自动冲水?我想没有什么不吞咽的例外。如果try/catch如果您尝试/catch,可以使用封装try的静态方法/catch@mulax:他不是抱怨它抛出异常,而是它不抛出异常-你必须使用
checkError()
进行查询。我想,不会消耗==不会throw@mulax粗略地说。。。抛出异常会产生异常-消费与生成相反。不会消耗!=我不会扔。(事实上,我们在这里没有使用术语。严格来说,我们应该谈论异常传播或被捕获。)Writer和/或BufferedWriter是否倾向于抑制IOExceptions?不。阅读javadocs:你会发现write()方法抛出IOException事实上两个版本中的所有方法都可以抛出IOException。Writer和/或BufferedWriter是否倾向于抑制IOException?不。阅读javadocs:您会发现write()方法抛出IOException事实上,两个版本中的所有方法都可以抛出IOException。