一、保存数据的两种分类
1.如果只有自己写的程序会用到该数据:序列化;
2.如果数据需要被其他程序引用:非序列化(文本等)。
二、对象序列化:实现 Serializable接口
1.序列化存储文件格式(“Mygame.ser”);
2.步骤,FileOutputStream连接文件,ObjectOutputStream连接对象,写入对象writeObject();
3.如果一个对象被序列化,那么他的所有实例或者引用对象都将被序列化,除非是transient标记变量;
4.readObject()的返回类型是Object,还需要转换;
5.静态变量不会被序列化,因为所有对象都是共享同一份静态变量值;
6.序列化如果修改类,还原可能会有安全类型,可设置一个版本ID;
7.还原序列化的时候父类构造函数不会运行。
三、非序列化
1.有字节流和字符流,字节流用来适用于图像等,字符流用来适用于文本;
2.FileWriter/FileReader是字符流,FileOutputStream/FileInputStream是字节流;
3.分为输入流和输出流,输入流只读不写,输出流只写不读;
4,可适用于缓存区;
四、java.io.File类
该类用File对象代替文件,但是不代替文件的内容,抽象认为代替文件的路径。