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。