首頁  >  文章  >  Java  >  Java中如何將位元組數組轉換為Long類型?

Java中如何將位元組數組轉換為Long類型?

Barbara Streisand
Barbara Streisand原創
2024-11-05 18:11:02306瀏覽

How to Convert a Byte Array to a Long in Java?

Java 中位元組數組到長整數型的轉換:綜合指南

長整數資料型態與位元組數組之間的轉換是Java 程式設計中的一項基本任務,尤其是在透過網路交換資料或以二進位格式儲存資料時。本文概述了有效執行此轉換的各種方法。

Long 到位元組數組轉換

要將long 值轉換為位元組數組,您可以使用以下命令方法:

<code class="java">public byte[] longToBytes(long x) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.putLong(x);
    return buffer.array();
}</code>

在此程式碼中,分配的ByteBuffer 物件的大小等於表示long 值所需的位元組數。 putLong 方法用於將 long 值寫入緩衝區,最後,數組方法檢索底層位元組數組表示。

位元組數組到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 物件。這可以透過將進程包裝在一個類別中來實現:

<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 中長值和位元組數組之間轉換的高效可靠的方法。無論您選擇 directByteBuffer 方法還是使用 ByteUtils 包裝器,您都可以放心地在應用程式中處理這些轉換。

以上是Java中如何將位元組數組轉換為Long類型?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn