Heim > Java > javaLernprogramm > Hauptteil

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

Mary-Kate Olsen
Freigeben: 2024-11-06 16:58:02
Original
385 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ü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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!