2011-10-15 36 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

相關問題