Java Long をバイトに変換して元に戻す
TCP 接続経由でデータを送信する場合、多くの場合、データ型をバイト配列に変換する必要があります。効率的な転送。 Java では、long から byte[] への変換、およびその逆の変換は、さまざまなメソッドを通じて実現できます。
1 つの方法は、ByteBuffer クラスを使用することです。 Long.BYTES (8 バイト) で ByteBuffer を作成すると、putLong() メソッドを使用して Long 値を格納し、array() メソッドを使用してバイト配列を取得できます。バイト配列を Long に変換するには、別の ByteBuffer を作成し、バイト配列を put() して、getLong() メソッドを使用して Long 値を取得する必要があります。
例は次のとおりです。
<code class="java">public byte[] longToBytes(long x) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.putLong(x); return buffer.array(); } public long bytesToLong(byte[] bytes) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.put(bytes); buffer.flip(); // Ensure the buffer is ready for reading return buffer.getLong(); }</code>
もう 1 つのアプローチは、ヘルパー クラスを使用して ByteBuffer の繰り返し作成を避けることです。以下の ByteUtils クラスは変換メソッドをカプセル化し、複数の ByteBuffers を作成する必要性を排除します。
<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>
これらの変換を実行する便利な方法を提供し、カスタムの必要性を減らす Guava のようなライブラリもあることは注目に値します。実装。ただし、これらのアプローチには、エンディアンの問題に自動的に対処し、基盤となるシステム アーキテクチャに関係なくデータが正しく送信および解釈されるようにするという利点があります。
以上がJava の Long をバイトに変換したり、その逆に変換したりするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。