Rumah >Java >javaTutorial >Bagaimana untuk Menukar Long kepada Array Byte dan Kembali di Java?
Tukar Long kepada Array Byte dan Kembali dalam Java
Di Java, menukar nilai long kepada bait[] dan back boleh menjadi keperluan biasa untuk pelbagai senario. Mari kita terokai cara yang cekap untuk mencapai matlamat ini.
Menukar Long ke Byte Array
Untuk menukar long kepada bait[], kita boleh menggunakan kelas ByteBuffer Java. Berikut ialah contoh mudah:
<code class="java">public byte[] longToBytes(long x) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.putLong(x); return buffer.array(); }</code>
Menukar Tatasusunan Byte kepada Panjang
Untuk menukar bait[] kembali kepada panjang, kita boleh menggunakan satu lagi contoh ByteBuffer:
<code class="java">public long bytesToLong(byte[] bytes) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.put(bytes); buffer.flip(); return buffer.getLong(); }</code>
Nota: Dalam kod di atas, adalah penting untuk memanggil buffer.flip() sebelum mendapatkan nilai panjang, kerana ia menukar penimbal daripada mod tulis kepada mod baca.
Pendekatan Berasaskan Kelas Dioptimumkan
Untuk mengelak daripada mencipta berbilang tika ByteBuffer untuk penukaran berulang, anda boleh membuat kelas berasingan seperti ini:
<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>
Pertimbangan Endian-ness
Apabila menukar antara panjang dan bait[], anda harus mempertimbangkan sifat endian sistem yang sedang anda gunakan. Endian-ness merujuk kepada susunan di mana bait disimpan dalam ingatan (little-endian atau big-endian). Java menggunakan big-endian, jadi aspek ini dikendalikan secara automatik.
Pendekatan Alternatif
Terdapat perpustakaan alternatif seperti Guava yang menyediakan kaedah yang mudah untuk melaksanakan jenis penukaran ini. Walau bagaimanapun, penyelesaian Java asli yang dibentangkan di sini boleh menjadi cekap dan boleh dipercayai untuk kebanyakan kes penggunaan.
Atas ialah kandungan terperinci Bagaimana untuk Menukar Long kepada Array Byte dan Kembali di Java?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!