我可以在同一个输出流上同时使用PrintWriter和BufferedOutputStream吗?我可以在同一个输出流上同时使用PrintWriter和BufferedOutputStream吗?
的情况是这样的:
我有一个SSLSocket的计划,我希望能够为byte []过在不同时间点的插座容易而无需进行转换字节传输字符串和[]字符串等,但是,PrintWriter只允许我传输字符串,并且BufferedOutputStream只允许我传输字节。
我可以在同一个输出流上同时使用PrintWriter和BufferedOutputStream吗?我可以在同一个输出流上同时使用PrintWriter和BufferedOutputStream吗?
的情况是这样的:
我有一个SSLSocket的计划,我希望能够为byte []过在不同时间点的插座容易而无需进行转换字节传输字符串和[]字符串等,但是,PrintWriter只允许我传输字符串,并且BufferedOutputStream只允许我传输字节。
PrintWriter只是原始OutputStream的一个包装。 BufferedOutputStream也是OutputStream的一个包装。 所以你可以使用两者。为什么不?
你应该考虑的一件事 - 你应该在多线程环境中同时处理流和写入器,因为你可能会得到不可预知的结果。
java.io.Writer类(PrintWriter的超类)将自己用作锁对象。所以你也可以用它来同步多个线程。
没关系,但是您必须确保以正确的顺序冲洗它们。您也可以使用BufferedOutputStream
之上的PrintWriter
。
我会使用一个DataOutputStream(可能包装一个BufferedOutputStream)。它允许你转移byte[]
,int
,double
String
和许多其他类型。要发送byte[]
,您可能需要首先发送长度为int
或short
。
在同一个帐户上,我可以在同一个InputStream上同时使用Scanner和BufferedInputStream? – shawn