Java 打印流的无意义使用?

Java 打印流的无意义使用?,java,Java,我正在研究一个类,它通过构造函数接受一个OutputStream对象,并使用它创建一个PrintStream对象,如下所示: this.pout = new PrintStream(out); 然后,该类在类实现中的多个位置以以下方式使用pout对象: String string; ... pout.print(string); pout.flush(); 我说在这里使用PrintStream是毫无意义的,这也可以做同样的工作,对吗 this.out = out ... out.print(

我正在研究一个类,它通过构造函数接受一个
OutputStream
对象,并使用它创建一个
PrintStream
对象,如下所示:

this.pout = new PrintStream(out);
然后,该类在类实现中的多个位置以以下方式使用
pout
对象:

String string;
...
pout.print(string);
pout.flush();
我说在这里使用PrintStream是毫无意义的,这也可以做同样的工作,对吗

this.out = out
...
out.print(string);
out.flush();
其中out的类型为
OutputStream


另外,我使用这个类在ssh2连接上编写一个命令。然后,我使用一个实现
InputStream
的类读回响应。
OutputStream
InputStream
之间是否有任何后台同步,或者我是否应该在轮询回复之前始终调用flush?

第二个代码段无效。没有
print()
方法

OutputStream
InputStream
之间是否有任何后台同步,或者我是否应该在轮询回复之前始终调用flush


这取决于您正在使用的实际流类的机制。如果有疑问,请使用
flush()

第二个代码段无效。没有
print()
方法

OutputStream
InputStream
之间是否有任何后台同步,或者我是否应该在轮询回复之前始终调用flush


这取决于您正在使用的实际流类的机制。如果有疑问,请使用
flush()

print()调用write(),但隐藏可能发生的任何IOException。这通常是危险的,而不是有用的,除非您正在向设备写入数据,该设备永远不会失败,或者只有在用户控件中的设备(例如System.out和System.err)是PrintStream时才会失败,并且程序的调用方可以在程序运行时关闭这些设备。

print()调用write(),但隐藏可能发生的任何IOException。这通常比有用的更危险,除非您正在向设备写入数据,该设备永远不会失败,或者只有在用户控件中的设备(例如System.out和System.err)为PrintStream时才会失败,并且程序调用方可能在程序运行时关闭这些设备。

除了明显缺少
打印…()
OutputStream中的
方法
,PrintStream也会抑制
IOException
,并设置一个错误标志。

除了
OutputStream中明显缺少
print…()
方法之外,PrintStream还会抑制
IOException
并设置错误标志。

如果我创建的PrintStream对象的autoFlush参数设置为true,则可以删除刷新。
PrintStream
还通过打印“null”来处理传递给
print
方法的
null
参数.Emil H在我正在查看的代码中,只有字符串对象被传递到print方法。如果我创建的PrintStream对象的autoFlush参数设置为true,我可以删除刷新。
PrintStream
还通过打印“null”来处理传递给
print
方法的
null
参数.Emil H在我正在查看的代码中,只有字符串对象被传递到print方法。如果您尝试过,您会在大约30秒内自己找到答案。@EJP Not true,我忽略了OutputStream仅在查看文档时才对字节起作用的事实。如果您尝试过,您将在大约30秒钟内自己找到答案。@EJP不正确,我忽略了OutputStream仅在查看文档时对字节起作用的事实。