序列化和反序化解析
先序列化, 再反序列化
序列化: 将内存中的对象, 写到硬盘 -> 输出流
反序列化: 将硬盘中的对象, 读取到内存 -> 输入流
ObjectOutputStream : 序列化, 对象输出流
`public ObjectOutputStream(OutputStream out) `
`public final void writeObject (Object obj)` : 将指定的对象写出。
ObjectInputStream : 反序列化, 对象输入流
`public ObjectInputStream(InputStream in) `
`public final Object readObject ()` : 读取一个对象。
StreamCorruptedException: invalid stream header:
原因: 没有序列化, 就直接反序列化
序列化之后对文件进行修改
所需关键字
序列化:
ObjectOutputStream
FileOutputStream
writeObject();
反序列化
ObjectInpuStream
FileInputStream
readObject();
代码案例:
序列化:
代码:
public static void main(String[] args) throws IOException {
//序列化
//创建序列化的写入内容需要的ObjectOutputStream(new FileOutputStream(路径))
ObjectOutputStream ops = new ObjectOutputStream(new FileOutputStream("AllText\\wzw.properties"));
//写入文件
ops.writeObject("序列化内容");
//提示
System.out.println("写入成功");
//关流
ops.close();
}
反序列化:
代码:
public static void main(String[] args) throws IOException, ClassNotFoundException {
//反序列化
//创建读取序列化文件对象ObjectInputStream(FileInputStream(路径))
ObjectInputStream ois=new ObjectInputStream(new FileInputStream("AllText\\wzw.properties"));
//读取
String s = (String) ois.readObject();
//查看读取内容
System.out.println(s);
//关流
ois.close();
}
* 博客文章部分截图及内容来自于学习的书本及相应培训课程,仅做学习讨论之用,不做商业用途。
* 如有侵权,马上联系我,我立马删除对应链接。
* 备注:王子威
* 我的网易邮箱:wzw_1314_520@163.com