Heim > Java > javaLernprogramm > Wie kann ich Java-Longs in Bytes und zurück konvertieren?

Wie kann ich Java-Longs in Bytes und zurück konvertieren?

Susan Sarandon
Freigeben: 2024-11-09 02:35:02
Original
469 Leute haben es durchsucht

How can I convert Java longs to bytes and back?

Konvertieren von Java-Longs in Bytes und zurück

Bei der Übertragung von Daten über eine TCP-Verbindung ist es häufig erforderlich, Datentypen in Byte-Arrays umzuwandeln effiziente Übertragung. In Java kann die Konvertierung eines long in ein byte[] und zurück durch verschiedene Methoden erreicht werden.

Ein Ansatz ist die Verwendung der ByteBuffer-Klasse. Indem Sie einen ByteBuffer mit Long.BYTES (8 Bytes) erstellen, können Sie den Long-Wert mit der Methode putLong() speichern und das Byte-Array mit der Methode array() abrufen. Um das Byte-Array wieder in ein Long-Array umzuwandeln, müssen Sie einen weiteren ByteBuffer erstellen, das Byte-Array darin einfügen() und die Methode getLong() verwenden, um den Long-Wert zu erhalten.

Hier ist ein Beispiel:

<code class="java">public byte[] longToBytes(long x) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.putLong(x);
    return buffer.array();
}

public long bytesToLong(byte[] bytes) {
    ByteBuffer buffer = ByteBuffer.allocate(Long.BYTES);
    buffer.put(bytes);
    buffer.flip(); // Ensure the buffer is ready for reading
    return buffer.getLong();
}</code>
Nach dem Login kopieren

Ein anderer Ansatz besteht darin, eine Hilfsklasse zu verwenden, um die wiederholte Erstellung von ByteBuffer zu vermeiden. Die ByteUtils-Klasse unten kapselt die Konvertierungsmethoden und macht die Erstellung mehrerer ByteBuffers überflüssig:

<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

Es ist erwähnenswert, dass es auch Bibliotheken wie Guava gibt, die bequeme Möglichkeiten zur Durchführung dieser Konvertierungen bieten, wodurch der Bedarf an benutzerdefinierten Konvertierungen verringert wird Implementierungen. Diese Ansätze bieten jedoch den Vorteil, dass sie Endianness-Bedenken automatisch berücksichtigen und sicherstellen, dass Daten unabhängig von der zugrunde liegenden Systemarchitektur korrekt übertragen und interpretiert werden.

Das obige ist der detaillierte Inhalt vonWie kann ich Java-Longs in Bytes und zurück konvertieren?. 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