阅读量:0
在Java中,如果需要将一个对象序列化(即将对象转换为字节流以便存储或传输),可以让该对象实现Serializable
接口。
要调用Serializable
接口,只需要在想要序列化的类的声明中,使用implements
关键字引入该接口。例如:
public class MyClass implements Serializable { // 类的代码 }
然后,可以使用ObjectOutputStream
类将对象写入输出流,实现序列化操作。例如:
MyClass obj = new MyClass(); try { FileOutputStream fileOut = new FileOutputStream("file.ser"); ObjectOutputStream out = new ObjectOutputStream(fileOut); out.writeObject(obj); out.close(); fileOut.close(); System.out.println("对象已经成功序列化"); } catch (IOException e) { e.printStackTrace(); }
在这个例子中,MyClass
对象被写入名为file.ser
的文件中。注意,如果要序列化的类中包含其他对象,这些对象也必须实现Serializable
接口。
要进行反序列化操作(即从字节流中恢复对象),可以使用ObjectInputStream
类。例如:
try { FileInputStream fileIn = new FileInputStream("file.ser"); ObjectInputStream in = new ObjectInputStream(fileIn); MyClass obj = (MyClass) in.readObject(); in.close(); fileIn.close(); System.out.println("对象已经成功反序列化"); } catch (IOException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { e.printStackTrace(); }
在这个例子中,从名为file.ser
的文件中读取字节流,并使用类型转换将其转换为MyClass
对象。