实验的准备就是一个可以序列化的类:
class Abean implements Serializable {
private static final long serialVersionUID = -4903107312403938616L;
}
成员变量定义成字符型,是为了查看文件方便。需要注意的就是必须实现Serializable接口,否则直接exception了。
实验代码如下:
FileOutputStream fos = new FileOutputStream("ff");
ObjectOutputStream oos = new ObjectOutputStream(fos);
Abean aa = new Abean();
for (int i = 0; i < 10; i++) {
// oos.reset();
FileInputStream fis = new FileInputStream("ff");
ObjectInputStream ois = new ObjectInputStream(fis);
for (int i = 0; i < 10; i++) {
System.out.printf("%s\t%s\n", d.aa, d.bb);
测试代码也同样简单,通过控制其中一行来查看前后的区别。
for (int i = 0; i < 10; i++) {
Abean aa = new Abean();
// oos.reset();
表:各个实验中生成文件大小的对比
实验 | 文件大小(字节) |
不reset,只new一次 | 172 |
每次rest, 只new一次 | 794 |
不reset,每次new | 271 |
每次reset,每次new | 794 |