2011-10-15 32 views
1

我可以在同一个输出流上同时使用PrintWriter和BufferedOutputStream吗?我可以在同一个输出流上同时使用PrintWriter和BufferedOutputStream吗?

的情况是这样的:

我有一个SSLSocket的计划,我希望能够为byte []过在不同时间点的插座容易而无需进行转换字节传输字符串和[]字符串等,但是,PrintWriter只允许我传输字符串,并且BufferedOutputStream只允许我传输字节。

回答

6

PrintWriter只是原始OutputStream的一个包装。 BufferedOutputStream也是OutputStream的一个包装。 所以你可以使用两者。为什么不?

你应该考虑的一件事 - 你应该在多线程环境中同时处理流和写入器,因为你可能会得到不可预知的结果。

java.io.Writer类(PrintWriter的超类)将自己用作锁对象。所以你也可以用它来同步多个线程。

2

没关系,但是您必须确保以正确的顺序冲洗它们。您也可以使用BufferedOutputStream之上的PrintWriter

+0

在同一个帐户上,我可以在同一个InputStream上同时使用Scanner和BufferedInputStream? – shawn

0

我会使用一个DataOutputStream(可能包装一个BufferedOutputStream)。它允许你转移byte[],int,doubleString和许多其他类型。要发送byte[],您可能需要首先发送长度为intshort

相关问题