最初にメッセージのサイズを指定して4bytes(int)を読み取り、次にバイト数に基づいて残りのバイトを読み取ろうとしています。私はこれを達成するために次のコードを使用しています:
DataInputStream dis = new DataInputStream(
mClientSocket.getInputStream());
// read the message length
int len = dis.readInt();
Log.i(TAG, "Reading bytes of length:" + len);
// read the message data
byte[] data = new byte[len];
if (len > 0) {
dis.readFully(data);
} else {
return "";
}
return new String(data);
これを行うためのより良い/効率的な方法はありますか?