簡體   English   中英

DataInputStream和OutputStream寫入/讀取字符串的長度

[英]DataInputStream and OutputStream write/read string with length

如何使用使用以下代碼存儲的DataInputStream讀取String

DataOutputStream dataOut = new DataOutputStream (out); // Some other stream
String title = processed.getTitle();
dataOut.writeInt(title.length());
dataOut.writeBytes(title);

您可以像這樣閱讀。

DataInputStream dataIn = new DataInputStream (input);
int length = dataIn.readInt();
byte[] array = new byte[length];
dataIn.read(array);

您可以使用ByteArrayOutputStreamByteArrayInputStream以及一個字節數組作為中間緩沖區。

ByteArrayOutputStream out = new ByteArrayOutputStream();

// Some other streams
DataOutputStream dataOut = new DataOutputStream (out); 
String title = processed.getTitle();
dataOut.writeInt(title.length());
dataOut.writeBytes(title);

ByteArrayInputStream in = new ByteArrayInputStream(out.toByteArray());
DataInputStream dataIn = new DataInputStream(in);
dataOut.writeUTF(title);
// ...
String title = dataIn.readUTF();

...只要標題以這種格式編寫時不需要超過65533字節即可:請參閱Javadoc。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM