Java でのバイト配列から Long への変換: 総合ガイド
long データ型とバイト配列の間の変換は、Java プログラミングの基本的なタスクです、特にネットワーク上でデータを交換する場合、またはデータをバイナリ形式で保存する場合に注意が必要です。この記事では、この変換を効果的に実行するためのさまざまな方法について概説します。
Long からバイト配列への変換
long 値をバイト配列に変換するには、次のコマンドを使用できます。 approach:
<code class="java">public byte[] longToBytes(long x) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.putLong(x); return buffer.array(); }</code>
このコードでは、long 値を表すために必要なバイト数と同じサイズの ByteBuffer オブジェクトが割り当てられます。 putLong メソッドを使用して Long 値をバッファに書き込み、最後に array メソッドで基礎となるバイト配列表現を取得します。
バイト配列から Long への変換
逆変換を実行するには、次のコードを使用できます。
<code class="java">public long bytesToLong(byte[] bytes) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.put(bytes); buffer.flip(); // Flip the buffer to make it ready for reading return buffer.getLong(); }</code>
ここでは、ByteBuffer オブジェクトが再度使用され、今回は指定されたバイト配列をラップします。 put メソッドを使用してバイトをバッファにコピーし、その後バッファを反転して読み取りの準備ができたことを示します。最後に、getLong メソッドはバッファから Long 値を取得します。
ByteBuffer の繰り返し作成を回避する
複数の変換が実行されるシナリオでは、ByteBuffer の作成を回避する方が効率的です。変換ごとに新しい ByteBuffer オブジェクト。これは、プロセスをクラスでラップすることで実現できます。
<code class="java">public class ByteUtils { private static ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); public static byte[] longToBytes(long x) { buffer.putLong(0, x); return buffer.array(); } public static long bytesToLong(byte[] bytes) { buffer.put(bytes, 0, bytes.length); buffer.flip(); return buffer.getLong(); } }</code>
この場合、単一の ByteBuffer オブジェクトがすべての変換で共有され、オブジェクト作成のオーバーヘッドが最小限に抑えられます。
結論
この記事で説明するメソッドは、Java で Long 値とバイト配列の間で変換する効率的かつ信頼性の高い方法を提供します。 directByteBuffer アプローチを選択するか ByteUtils ラッパーを利用するかにかかわらず、アプリケーションでこれらの変換を自信を持って処理できます。
以上がJava でバイト配列を Long に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。