2012-03-19 19 views
1

java有沒有一個類允許從一個流中讀取String和byte [],還有另一個用於將String和byte []寫入流的類?如果有必要像HTTP一樣傳輸byte []和String?java有沒有一個類允許從一個流中讀取String和byte []?

+0

@mfrankli相互轉換?是。互換?幾乎不。如果你知道用什麼編碼來解釋它,一個'byte []'只能用作字符串。 – Taymon 2012-03-19 03:35:58

回答

3

字符編碼可能存在潛在的問題。特別是,Java在內部表示UTF-16中的字符串,這可能不是網絡連接另一端的人所期望的。由此產生的行爲將是一致的,但不一定是普通程序員期望的。

得到一個字符串的byte[]表示並不難。只需使用String.getBytes(),或者允許您指定編碼的重載版本。

+1

http://www.joelonsoftware.com/articles/Unicode.html是一個關於編碼問題的好資源 – mfrankli 2012-03-19 03:41:18

+0

我真的記得那個,不知道爲什麼我沒有鏈接到它。謝謝! – Taymon 2012-03-19 03:52:48

+0

如何從字節輸入流中讀取一行(分隔符是CRLF)?有沒有更快的方式來做它,而不是從一個字節讀取一個字節並比較前一個字符和當前字符? – shawn 2012-03-19 04:00:29

1

它的確如此。對於字節,DataInputStreamObjectInputStream都具有:readLine()和readUTF(),並且讀取(byte [],...)字節。

+0

readLine已棄用 – shawn 2012-03-19 04:30:45

+0

@shawn確實如此,但它也存在。你提出的問題是錯誤的。 – EJP 2012-03-19 05:16:10

相關問題