对象操作流
对象操作流
可以把对象以字节的形式写到本地文件,直接打开文件,是读不懂,需要再次用到对象操作流读到内存中
graph TD A(对象操作流)-->B(对象操作输入流)-->C(ObjectInputStream) A-->D(对象操作输出流)-->E(ObjectOutputStream)
对象操作输出流(对象序列化流)
User user = new User("zhangshan", "wwww");
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\a.txt"));
oos.writeObject(user);
oos.close();
对象操作输入流(对象反序列化流)
ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\a.txt"));
User o = (User) ois.readObject();
System.out.println(o);
ois.close();
注意事项
- 对象序列化后,如果修改了对象类,读取数据会抛出InvalidClassException异常
- 解决方法:手动定义对象的序列号:
- private static final long serialVersionUID = 1L;
- 如果对象的成员变量不想被序列化。
- 加上transient
- private transient String password;
Properties
- Map体系的集合类
- Properties中有跟IO相关的方法
- 只存字符串