gpt4 book ai didi

Java - 如何对java对象进行Gzip压缩

转载 作者:行者123 更新时间:2023-12-02 09:01:24 24 4
gpt4 key购买 nike

如何使用 Gzip 压缩 Java pojo 对象?

下面的代码压缩字符串 -

public static String compress(String str, String inEncoding) {
if (str == null || str.length() == 0) {
return str;
}
try {
ByteArrayOutputStream out = new ByteArrayOutputStream();
GZIPOutputStream gzip = new GZIPOutputStream(out);
gzip.write(str.getBytes(inEncoding));
gzip.close();
return URLEncoder.encode(out.toString("ISO-8859-1"), "UTF-8");
} catch (IOException e) {
e.printStackTrace();
}
return null;
}

如何使用下面的pojo类对象(客户端cc)而不是String str作为参数并压缩?

Pojo 类 -

Class client {
Public string name;
Public string location;
//Getter and setter methods
}

如何使用 gzip 压缩和解压缩这个客户端 pojo 类?

最佳答案

您可以通过执行以下操作来压缩使用 gzip 实现可序列化的 Client 类:

public static bytes[] compressThis(Client client){
ByteArrayOutputStream baos = new ByteArrayOutputStream();
GZIPOutputStream gzipOut = new GZIPOutputStream(client);
ObjectOutputStream objectOut = new ObjectOutputStream(gzipOut);
objectOut.writeObject(client);
objectOut.close();
return baos.toByteArray();
}

接下来,您可以通过执行以下操作来解压缩它:

public static getClientFrom(bytes[] bytes){
ByteArrayInputStream bais = new ByteArrayInputStream(bytes);
GZIPInputStream gzipIn = new GZIPInputStream(bais);
ObjectInputStream objectIn = new ObjectInputStream(gzipIn);
Client client = (Client) objectIn.readObject();
objectIn.close();
return client;
}

关于Java - 如何对java对象进行Gzip压缩,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60134395/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com