問題
2 つの int と可変長の文字列をバイトに変換する必要があります。
私がしたこと
各データ型をバイト配列に変換してから、バイト バッファーに追加しました。その直後に、以下に示すように、そのバッファーを 1 つのバイト配列にコピーします。
byte[] nameByteArray = cityName.getBytes();
byte[] xByteArray = ByteBuffer.allocate(4).putInt(x).array();
byte[] yByteArray = ByteBuffer.allocate(4).putInt(y).array();
ByteBuffer byteBuffer = ByteBuffer.allocate(nameByteArray.length + xByteArray.length + yByteArray.length);
これは少し冗長に思えます。確かにすべてをバイト バッファーに配置し、それをバイト配列に変換できます。ただし、弦の長さはわかりません。この場合、バイトバッファをどのように割り当てるのでしょうか? (バイトバッファを割り当てるには、その容量を指定する必要があります)