在《Serializable是怎么工作的(写入)》篇文章中,我们大致了解了Serializable的写入过程,我们用到的是ObjectOutputStream,那与之对应的就是反序列化,把存入文件的二进制数据,读出来,转换为对应的实例对象,这次就该用到ObjectInputStream了。使用代码大致如下:
TesyBean sBean = new TesyBean();
String path = "/Users/menghui/Downloads/mh.obj";
FileInputStream fileInputStream;
File file = new File(path);
try {
fileInputStream = new FileInputStream(file.toString());
try {
ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
//这里读出数据,转换为具体实例
sBean = (TesyBean) objectInputStream.readObject();
} catch (IOException e) {
e.printStackTrace();
}catch (ClassNotFoundException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
使用过程中,先通过FileInputStream将文件数据读入,然后创建ObjectInputStream,并传入