JavaIO大纲
序列化 / 反序列化
- 序列化:是指把Java程序中的对象永久存储在磁盘中的过程,可以看做是一个
out
的过程 - 反序列化:是指从磁盘中恢复一个被序列化好的文件,可以看作是一个
in
的过程
测试:
//这个类用来测试对象的序列化
public class Test7_Seri {
public static void main(String[] args) {
method();//序列化-- 是指把java程序中的对象永久存储在磁盘中的过程,可以看做是一个out的过程
method2();//反序列化-- 是指从磁盘中恢复一个被序列化 好的文件,可以看做是一个in的过程
}
private static void method2() {
try {
//1、创建反序列化工具类的对象
ObjectInputStream in = new ObjectInputStream(new FileInputStream("D:\\iotest\\1.txt"));
//2、反序列化
Object obj = in.readObject();
System.out.println(obj);//Student [name=jack, age=10, addr=北京]
} catch (Exception e) {
e.printStackTrace();
}
}
private static void method() {
try {
//1、序列化工具类ObjectOutputStream对象
ObjectOutputStream out = new ObjectOutputStream(new FileOutputStream("D:\\iotest\\1.txt"));
//2、序列化
Student s = new Student("jack",10,"北京");
out.writeObject(s);
//3、释放资源
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
//1、Serializable标志着这个文件是可以被序列化的
class Student implements Serializable{
private static final long serialVersionUID = 1L;
//一般序列化的都是属性
String name = "张三";
int age = 20;
String addr = "成都";
public Student(String name, int age, String addr) {
this.name = name;
this.age = age;
this.addr = addr;
}
@Override
public String toString() {
return "Student [name=" + name + ", age=" + age + ", addr=" + addr + "]";
}
}