[Algorithmus] Verwenden Sie den GZIP-Komprimierungsalgorithmus, um die übertragene JSON-Zeichenfolge zu komprimieren

Um den übertragenen JSON-String zu komprimieren, können Sie den GZIP-Komprimierungsalgorithmus verwenden. Hier ist ein Beispielcode, der zeigt, wie man GZIP zum Komprimieren und Dekomprimieren einer JSON-Zeichenfolge verwendet:

Komprimierte JSON-Zeichenfolge:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPOutputStream;

public class JsonCompression {
    
    
    public static byte[] compressJson(String json) throws IOException {
    
    
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        GZIPOutputStream gzipOutputStream = new GZIPOutputStream(outputStream);
        gzipOutputStream.write(json.getBytes("UTF-8"));
        gzipOutputStream.close();
        return outputStream.toByteArray();
    }
}

Im obigen Code erstellen wir zunächst ein ByteArrayOutputStream-Objekt, schreiben dann mit dem GZIPOutputStream-Objekt die JSON-Zeichenfolge in den ByteArrayOutputStream und schließen den GZIPOutputStream. Schließlich konvertieren wir die komprimierten Daten in ein Byte-Array, indem wir die toByteArray()-Methode von ByteArrayOutputStream aufrufen.

Dekomprimieren Sie die JSON-Zeichenfolge:

import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;

public class JsonCompression {
    
    
    public static String decompressJson(byte[] compressedData) throws IOException {
    
    
        ByteArrayInputStream inputStream = new ByteArrayInputStream(compressedData);
        GZIPInputStream gzipInputStream = new GZIPInputStream(inputStream);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();

        byte[] buffer = new byte[1024];
        int len;
        while ((len = gzipInputStream.read(buffer)) > 0) {
    
    
            outputStream.write(buffer, 0, len);
        }

        gzipInputStream.close();
        outputStream.close();

        return outputStream.toString("UTF-8");
    }
}

Im obigen Code erstellen wir zunächst ein ByteArrayInputStream-Objekt, um die eingehenden komprimierten Daten als Eingabestream zu verwenden, und erstellen ein GZIPInputStream-Objekt, um die Daten zu dekomprimieren. Anschließend verwenden wir ein ByteArrayOutputStream-Objekt, um die dekomprimierten Daten zwischenzuspeichern. Lesen Sie die Daten von GZIPInputStream durch eine Schleife und schreiben Sie sie in ByteArrayOutputStream. Abschließend schließen wir GZIPInputStream und ByteArrayOutputStream und konvertieren die dekomprimierten Daten in einen String.

Mit dem obigen Code können Sie die übertragene JSON-Zeichenfolge komprimieren und dekomprimieren. Bitte beachten Sie, dass die konkrete Implementierung je nach Ihren tatsächlichen Anforderungen variieren kann und Sie sie entsprechend Ihrer eigenen Situation anpassen und erweitern können.

Supongo que te gusta

Origin blog.csdn.net/gao511147456/article/details/132013922
Recomendado
Clasificación