久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

java字符串壓縮傳輸的方法是什么

128次閱讀
沒有評論

共計 2849 個字符,預計需要花費 8 分鐘才能閱讀完成。

Java 中可以使用壓縮算法對字符串進行壓縮傳輸,常用的壓縮方法有以下幾種:

  1. GZIP 壓縮:可以使用 Java 的 GZIPOutputStream 類進行壓縮,使用 GZIPInputStream 類進行解壓縮。可以使用以下代碼進行壓縮和解壓縮:
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.zip.GZIPInputStream;
import java.util.zip.GZIPOutputStream;

public class GZIPCompression {public static byte[] compress(String data) throws IOException {ByteArrayOutputStream bos = new ByteArrayOutputStream();
        GZIPOutputStream gzip = new GZIPOutputStream(bos);
        gzip.write(data.getBytes("UTF-8"));
        gzip.close();
        byte[] compressedData = bos.toByteArray();
        bos.close();
        return compressedData;
    }

    public static String decompress(byte[] compressedData) throws IOException {ByteArrayInputStream bis = new ByteArrayInputStream(compressedData);
        GZIPInputStream gzip = new GZIPInputStream(bis);
        byte[] buffer = new byte[1024];
        StringBuilder sb = new StringBuilder();
        int len;
        while ((len = gzip.read(buffer)) != -1) {sb.append(new String(buffer, 0, len, "UTF-8"));
        }
        gzip.close();
        bis.close();
        return sb.toString();}

    public static void main(String[] args) throws IOException {String originalString = "This is a test string";
        byte[] compressedData = compress(originalString);
        String decompressedString = decompress(compressedData);
        System.out.println("Original string: " + originalString);
        System.out.println("Compressed data: " + new String(compressedData));
        System.out.println("Decompressed string: " + decompressedString);
    }
}
  1. Deflater 壓縮:可以使用 Java 的 Deflater 類進行壓縮,使用 Inflater 類進行解壓縮。可以使用以下代碼進行壓縮和解壓縮:
import java.io.ByteArrayOutputStream;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.util.zip.Deflater;
import java.util.zip.Inflater;

public class DeflaterCompression {public static byte[] compress(String data) throws IOException {byte[] input = data.getBytes("UTF-8");
        Deflater deflater = new Deflater();
        deflater.setInput(input);
        ByteArrayOutputStream bos = new ByteArrayOutputStream(input.length);
        deflater.finish();
        byte[] buffer = new byte[1024];
        while (!deflater.finished()) {int count = deflater.deflate(buffer);
            bos.write(buffer, 0, count);
        }
        bos.close();
        byte[] compressedData = bos.toByteArray();
        return compressedData;
    }

    public static String decompress(byte[] compressedData) throws IOException {Inflater inflater = new Inflater();
        inflater.setInput(compressedData);
        ByteArrayOutputStream bos = new ByteArrayOutputStream(compressedData.length);
        byte[] buffer = new byte[1024];
        while (!inflater.finished()) {int count = inflater.inflate(buffer);
            bos.write(buffer, 0, count);
        }
        bos.close();
        byte[] decompressedData = bos.toByteArray();
        return new String(decompressedData, "UTF-8");
    }

    public static void main(String[] args) throws IOException {String originalString = "This is a test string";
        byte[] compressedData = compress(originalString);
        String decompressedString = decompress(compressedData);
        System.out.println("Original string: " + originalString);
        System.out.println("Compressed data: " + new String(compressedData));
        System.out.println("Decompressed string: " + decompressedString);
    }
}

這些方法可以將字符串進行壓縮,然后傳輸。在接收端,再進行解壓縮操作,恢復原始字符串。

丸趣 TV 網 – 提供最優質的資源集合!

正文完
 
丸趣
版權聲明:本站原創文章,由 丸趣 2023-12-09發表,共計2849字。
轉載說明:除特殊說明外本站除技術相關以外文章皆由網絡搜集發布,轉載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 高雄县| 金溪县| 通渭县| 葫芦岛市| 寿宁县| 临朐县| 泊头市| 靖边县| 东兴市| 彭州市| 禹州市| 麦盖提县| 江陵县| 台东市| 德化县| 吴旗县| 抚顺县| 宁明县| 广灵县| 子洲县| 安塞县| 家居| 扶余县| 当涂县| 长宁县| 康马县| 陇西县| 丘北县| 泾川县| 乡城县| 什邡市| 老河口市| 泸溪县| 确山县| 新巴尔虎左旗| 克山县| 桑日县| 夏邑县| 乌恰县| 德江县| 陈巴尔虎旗|