Heim >Java >javaLernprogramm >Wie konvertiert man in Java ein Long-Array in ein Byte-Array und zurück?
Long in Byte-Array und zurück in Java konvertieren
In Java kann das Konvertieren eines Long-Werts in ein Byte[] und zurück eine sein gemeinsame Anforderung für verschiedene Szenarien. Lassen Sie uns effiziente Wege erkunden, um dies zu erreichen.
Long in ein Byte-Array konvertieren
Um ein Long in ein Byte[] umzuwandeln, können wir die ByteBuffer-Klasse von Java verwenden. Hier ist ein einfaches Beispiel:
<code class="java">public byte[] longToBytes(long x) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.putLong(x); return buffer.array(); }</code>
Konvertieren eines Byte-Arrays in ein Long-Array
Um das Byte[] wieder in ein Long-Array umzuwandeln, können wir eine andere Instanz von ByteBuffer verwenden:
<code class="java">public long bytesToLong(byte[] bytes) { ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES); buffer.put(bytes); buffer.flip(); return buffer.getLong(); }</code>
Hinweis: Im obigen Code ist es wichtig, buffer.flip() aufzurufen, bevor der lange Wert abgerufen wird, da dadurch der Puffer vom Schreib- in den Lesemodus umgeschaltet wird.
Optimierter klassenbasierter Ansatz
Um die Erstellung mehrerer Instanzen von ByteBuffer für wiederholte Konvertierungen zu vermeiden, können Sie eine separate Klasse wie diese erstellen:
<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>
Überlegungen zur Endian-Qualität
Bei der Konvertierung zwischen Long und Byte[] sollten Sie die Endian-Qualität des Systems berücksichtigen, mit dem Sie arbeiten. Endianness bezieht sich auf die Reihenfolge, in der Bytes im Speicher gespeichert werden (Little-Endian oder Big-Endian). Java verwendet Big-Endian, daher wird dieser Aspekt automatisch behandelt.
Alternative Ansätze
Es gibt alternative Bibliotheken wie Guava, die praktische Methoden für die Durchführung dieser Art der Konvertierung bieten. Die hier vorgestellten nativen Java-Lösungen können jedoch für die meisten Anwendungsfälle effizient und zuverlässig sein.
Das obige ist der detaillierte Inhalt vonWie konvertiert man in Java ein Long-Array in ein Byte-Array und zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!