@liruiyi962464
2017-03-23T09:21:29.000000Z
字数 1319
阅读 420
java
- 对对象的持久化存储,就是将自定的对象永久存储
- 这个过程叫序列化,在读出来,叫反序列化
- 被序列化的对象必须实现Serializable接口
- 序列化:以对象为单位,保存到硬盘上 内存----------------->硬盘
- 反序列化:反之,就是序列化 内存----------------->硬盘
//序列化:以对象为单位,保存到硬盘上 内存----------------->硬盘
//反序列化:反之,就是序列化 内存----------------->硬盘
Apple a1 = new Apple();
a1.setName("老苹果");
a1.setAge(82);
a1.setColor('y');
//先把数据从内存中写道硬盘
File sourceFile = new File("E:/JavaTaskIO/123.txt");
FileOutputStream fos = new FileOutputStream(sourceFile);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(a1);
//读入
File targetFile = new File("E:/JavaTaskIO/123.txt");
FileInputStream fis = new FileInputStream(targetFile);
ObjectInputStream ois = new ObjectInputStream(fis);
Apple a2 = (Apple) ois.readObject();
System.out.println(a2.getName());
public class Apple implements Serializable{
//用来保证类型的唯一性
//如果属性发生变化(名字、类型、个数) 依然可以匹配次类型
//如果没有serialVersionUID 如果放生属性变化 会抛出异常
private static final long serialVersionUID = 4954798015679745874L;
private String name;
private int age;
private char color;
public int a;//运行后新添加的
public Apple() {}
public Apple(String name, int age, char color) {
this.name = name;
this.age = age;
this.color = color;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public char getColor() {
return color;
}
public void setColor(char color) {
this.color = color;
}
}