io流(对象流总结)
对象流
- 对象流就是对引用数据类型进行操作
- 序列化:将对象的状态信息转换为可以存储或传输的形式的过程,因此类需要序列化后才可以存储到文件中
对象输出流:
很简单,就三句话,将把一个对象导入指定文件中,要注意:被导入的对象必须要实现一个借口(Serializable,可序列化接口),而这个接口就是一个标志,在没有作用,标志你可以被导入到硬盘中
我们写进文件中的信息我们看不懂,但是计算机可以看懂
package com.bjsxt.test08;
import java.io.*;
public class Test {
public static void main(String[] args) throws IOException {
ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream(new File("D:\\a\\a.txt")));
oos.writeObject(new Student(18,"hao"));
oos.close();
}
}
对象输入流:
注意:
- 类中要有ToString方法
- 要给类加一个序列化版本号,这样就可以无论如何修改都可以同步了,就不会出现异常
- 类中static,transient修饰的属性不会参与序列化
- 如果你把引用数据类型当做属性的话(需要创建对象),必须将它进行序列化操作,不然会影响外边的序列化操作
package com.bjsxt.test08;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
public class Test02 {
public static void main(String[] args) throws IOException, ClassNotFoundException {
ObjectInputStream ois = new ObjectInputStream(new FileInputStream(new File("D:\\a\\a.txt")));
Object o = ois.readObject();
System.out.println(o);
ois.close();
}
}
- 实现类如何生成序列化版本号?
-
点击File------->Settings--------->inspections
-
在实现类上Alt+Insert生成序列化版本化。