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中文網其他相關文章!