ホームページ > Java > &#&チュートリアル > Java の Long をバイトに変換したり、その逆に変換したりするにはどうすればよいですか?

Java の Long をバイトに変換したり、その逆に変換したりするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-09 02:35:02
オリジナル
468 人が閲覧しました

How can I convert Java longs to bytes and back?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート