バイト配列をスライスして、配列の最初の部分を削除しようとしています。ByteBuffer を使用していますが、期待どおりに動作しません。
byte[] myArray = new byte[10];
ByteBuffer buf = ByteBuffer.wrap(myArray);
buf.position(5);
ByteBuffer slicedBuf = buf.slice();
byte[] newArray = slicedBuf.array();
newArray のサイズは 5 で、ByteBuffer の最後の部分だけが含まれていると予想します。代わりに、完全なバイト配列が返されます。これは、「バッキングバッファー」がずっと同じであるためだと理解しています。
配列の必要な部分だけをスライスするにはどうすればよいですか?
編集:コンテキストを追加
バイトはネットワークから受信されます。バッファは次のように形成されます。
[ SHA1 hash ] [ data... lots of it ]
バイト配列をパラメーターとして取り、SHA1 ハッシュを計算する関数が既にあります。私が望むのは、完全なバッファをスライスして、予想されるハッシュなしでデータのみを渡すことです。