【发布时间】:2013-02-21 11:22:03
【问题描述】:
我打算通过序列化复制一个三维数组,使用以下类:
public class Serializer {
public byte[] serialize(Object obj) throws IOException {
ByteArrayOutputStream b = new ByteArrayOutputStream();
ObjectOutputStream o = new ObjectOutputStream(b);
o.writeObject(obj);
return b.toByteArray();
}
public Object deserialize(byte[] bytes) throws IOException,
ClassNotFoundException {
ByteArrayInputStream b = new ByteArrayInputStream(bytes);
ObjectInputStream o = new ObjectInputStream(b);
return o.readObject();
}
}
然后,在我的主代码中,我这样写:
int array[][][] = new int[param][][];
Serializer s = new Serializer();
byte [] b = s.serialize(array);
Object arrayCopy = s.deserialize(b);
但是,我确实在最后一行收到一条错误消息:“未处理的异常类型 ClassNotFoundException”
另外,我不知道如何将 Object arrayCopy 转换为 int[param][][],这是我的最终目标。我该怎么做?
谢谢
【问题讨论】:
-
整个序列化程序类实际上并没有做什么,你想要什么。 ObjectStream 读取 Java 对象(例如,字符串或列表)而不是字节数组。它只从输入流(字节数组)中读取。
标签: java multidimensional-array deep-copy