Java对象的序列化
本文最后更新于:1 年前
1 - 对象序列化
所谓的对象序列化(在某些书籍中也叫串行化),是指在内存之中保存的对象转化为二进制数据流的形式的一种操作。通过将对象序列化,可以方便地实现对象的传输及保存。但是在Java之中并不是所有的类的对象都可以被序列化,如果一个类对象需要被序列化,则此类一定要实现java. io.Serializable接口。但是这个接口里面也没有定义任何的方法,所以此接口依然属于标识接口,表示一种能力。
以上内容,引自<<Java从入门到精通(第二版)>> 张玉宏主编
2 - 具体代码的实现
2.1 需要实现序列化的类
@SuppressWarnings("serial")
class Person implements Serializable{
private String name;
private int age;
public Person(String name, int age){
this.name = name;
this.age = age;
}
@Override
public String toString(){
return "姓名: " + this.name + ", 年龄: " + this.age;
}
};
2.2 进行序列化测试的主类
public class SerializableDemo {
public static void main(String[] args) throws Exception{
String filePath = "D:\\";
File f = new File(filePath + "SerializablePerson.txt");
serialize(f);
deserialize(f);
}
// 使用以下方法为序列化对象方法
public static void serialize(File f)throws Exception{
OutputStream outputFile = new FileOutputStream(f);
ObjectOutputStream cout = new ObjectOutputStream(outputFile);
cout.writeObject(new Person("张三", 25));
cout.close();
}
// 使用以下方法为反序列化对象方法
public static void deserialize(File f)throws Exception{
InputStream inputStream = new FileInputStream(f);
ObjectInputStream cin = new ObjectInputStream(inputStream);
Person p = (Person)cin.readObject();
System.out.println(p);
cin.close();
}
}
3 - 输出示例
姓名: 张三, 年龄: 25
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!