Java 对象反序列化-从序列化对象返回int数组
现在,Java 对象反序列化-从序列化对象返回int数组,java,serialization,deserialization,object-serialization,Java,Serialization,Deserialization,Object Serialization,现在,ObjectOutputStream获取对象并直接序列化它DeflaterOutputStream压缩序列化结果,然后将压缩结果存储在ByteArrayOutputStream 有人能告诉我如何反序列化并取回我原来的int数组吗? Plz共享编码?在转换为字节之前,您可能需要关闭或完成流。我将编辑我的答案。在这里检查我的完整代码。好的。我终于找到了问题所在。您必须使用充气输入流,而不是放气输入流。很抱歉没有早点测试我的解决方案。我现在已经成功地测试了它。 int[] myIntArray;
ObjectOutputStream
获取对象并直接序列化它DeflaterOutputStream
压缩序列化结果,然后将压缩结果存储在ByteArrayOutputStream
有人能告诉我如何反序列化并取回我原来的int数组吗?
Plz共享编码?在转换为字节之前,您可能需要关闭或完成流。我将编辑我的答案。在这里检查我的完整代码。好的。我终于找到了问题所在。您必须使用充气输入流,而不是放气输入流。很抱歉没有早点测试我的解决方案。我现在已经成功地测试了它。
int[] myIntArray;
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
ObjectOutputStream objectOutputStream = new ObjectOutputStream(new DeflaterOutputStream(byteArrayOutputStream));
objectOutputStream.writeObject(myIntArray);
objectOutputStream.close();
byte[] serialized = byteArrayOutputStream.getBytes();
// and then read back using symmetric constructs as when writing, but using
// input streams instead of output streams:
ByteArrayInputStream byteArrayInputStream = new ByteArrayInputStream(serialized);
ObjectInputStream objectInputStream =
new ObjectInputStream(new InflaterInputStream(byteArrayInputStream));
int[] myDesererializedIntArray = (int[]) objectInputStream.readObject();