【发布时间】:2018-10-13 05:51:43
【问题描述】:
我想压缩我的可序列化对象并通过 java 套接字发送它们。 可序列化对象:
public class MyObject implements Serializable {
private int id;
private String name;
//getter,setter and equal, hashCode, toString methods
}
public class Sender {
private Socket clientSocket;
public void send(MyObject obj){
GZIPOutputStream gzipOut = new GZIPOutputStream(clientSocket.getOutputStream());
ObjectOutputStream objectOut = new ObjectOutputStream(gzipOut);
objectOut.writeObject(obj);
}
}
public class Receiver {
private Socket serverSocket;
public MyObject receive(){
GZIPInputStream gzipIn = new GZIPInputStream(serverSocket.getInputStream());
ObjectInputStream objectIn = new ObjectInputStream(gzipIn);
return (MyObject) objectIn.readObject();
}
}
这会引发 ZipException: Not in GZIP format at receiver side.
我不会关闭流和套接字,因为需要使用相同的流和套接字发送多个对象(性能方面)
【问题讨论】: