Heim >Java >javaLernprogramm >Wie konvertiert man in Java ein Long-Array in ein Byte-Array und zurück?

Wie konvertiert man in Java ein Long-Array in ein Byte-Array und zurück?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-06 16:58:02501Durchsuche

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

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn