String
にデータを割り当てbyte array
、先頭に4バイトの文字列データ長を配置したいと思います。達成するための最良の方法は何ですか?ソケット接続を介してバイトデータを送信するためにこれが必要です。サーバー側は、最初に言及された数のバイトを読み取ります。
これを行うためのより良い方法はありますか?
private byte[] getDataSendBytes(String data) {
int numberOfDataBytes = data.getBytes().length;
ByteBuffer bb = ByteBuffer.allocate(HEADER_LENGTH_BYTES);
bb.putInt(numberOfDataBytes);
byte[] headerBytes = bb.array();
byte[] dataBytes = data.getBytes();
// create a Datagram packet
byte[] sendDataBytes = new byte[HEADER_LENGTH_BYTES + dataBytes.length];
System.arraycopy(headerBytes, 0, sendDataBytes, 0, headerBytes.length);
System.arraycopy(dataBytes, 0, sendDataBytes, headerBytes.length,
dataBytes.length);
return sendDataBytes;
}