我可以在同一個輸出流上同時使用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