首頁 > Java > java教程 > 主體

如何在 Java 中將 Long 轉換為位元組數組並返回?

Mary-Kate Olsen
發布: 2024-11-06 16:58:02
原創
384 人瀏覽過

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

在Java 中將Long 轉換為位元組數組並傳回

在Java 中,將long 值轉換為byte[] 並傳回可以是各種場景的共同需求。讓我們探索實現這一目標的有效方法。

將 Long 轉換為位元組陣列

要將 long 轉換為 byte[],我們可以利用 Java 的 ByteBuffer 類別。這是一個簡單的範例:

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

將位元組陣列轉換為Long

要將byte[] 轉換回long,我們可以使用ByteBuffer 的另一個一個實例:

<code class="java">public long bytesToLong(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.put(bytes);
    buffer.flip();
    return buffer.getLong();
}</code>
登入後複製

注意:在上面的程式碼中,在檢索long 值之前調用buffer.flip() 至關重要,因為它將緩衝區從寫入模式切換為讀取模式。

優化的基於類的方法

到避免創建ByteBuffer 的多個實例以進行重複轉換,您可以創建一個單獨的類,例如this:

<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>
登入後複製

字節順序注意事項

在long 和byte[] 之間轉換時,您應該考慮您正在使用的系統的位元組順序和。位元組序是指位元組在記憶體中儲存的順序(小字節序或大字節序)。 Java 使用 big-endian,因此這方面是自動處理的。

替代方法

有像 Guava 這樣的替代庫提供了執行此類轉換的便捷方法。然而,這裡介紹的本機 Java 解決方案對於大多數用例來說都是高效且可靠的。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!