反序列化 :
从文件中读取(read)对象的过程 ObjectInputStream
步骤 :
1.属性类中: implements Serializable
接口 2.private static final long serialVersionUID = 1L; 3.创建serialVersionUID
的构造器 4.主类中 :数组转为集合 Arrays.asList(数组名)
例子:
import java.io.Serializable;
public class Student implements Serializable {
//用于区分所属类型
private static final long serialVersionUID = 1L;
private String no;
private String name;
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public static long getSerialversionuid() {
return serialVersionUID;
}
}
主类:
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.util.Arrays;
import java.util.List;
/**
* @author CC
* 反序列化 从文件中读取对象的过程 ObjectInputStream
*/
public class Demo3 {
public static void main(String[] args) {
//反序列化,数组转为集合
FileInputStream fis=null;
ObjectInputStream ois=null;
try {
fis=new FileInputStream("e:\\stu.qf");
ois=new ObjectInputStream(fis);
Student[] aryStu=(Student[])ois.readObject();
//把数组转换成集合
List<Student> listStu=Arrays.asList(aryStu);
//遍历集合
for(Student s: listStu){
System.out.println(s.getNo()+"\t"+s.getName());
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}