私が使用しているプロトコルでは、ファイル内の現在の位置を「ネットワーク バイト順の符号なしの 4 バイト整数」として送り返す必要があります。これにはいくつかの質問がありますが、Long ではなく Integ を使用していると仮定しています。
これを NIO の ByteBuffer に移植して、ソケット チャネルで送信できるようにしようとしています。
long bytesTransfered = ... some number of bytes transfered...
//TODO: What does this actually do?
outBuffer[0] = (byte) ((bytesTransfered >> 24) & 0xff);
outBuffer[1] = (byte) ((bytesTransfered >> 16) & 0xff);
outBuffer[2] = (byte) ((bytesTransfered >> 8) & 0xff);
//TODO: Why does netbeans say this does nothing?
outBuffer[3] = (byte) ((bytesTransfered >> 0) & 0xff);
これを達成する ByteBuffer のメソッドはありますか? うまくいけば、上記のビットシフトの魔法よりも、より明白で自己記述的な方法でしょうか?