您的位置:首页 > 编程语言 > Java开发

IO总结(七)

2013-10-20 17:18 190 查看
画图程序中画出一个矩形,保存到电脑硬盘中,下次打开这个文件这个矩形还是在原来的位置上。显然矩形的位置信息被保存了下来。

这个矩形的信息是怎么保存到硬盘中的呢?在内存中new一个矩形对象,里面保存着这个矩形对象的各种属性。

如果分别将这些属性写到硬盘的话是非常麻烦的,利用Object流就可以一次性将这个矩形对象写进去。类似地,有些游戏可以存盘,也是这个原理。

Object流

直接将Object写入或读出。

例子:

import java.io.*;
public class TestObjectIO {
public static void main(String args[]) throws Exception{
Ex t  = new Ex();
t.k = 999;
FileOutputStream fos = new FileOutputStream("F:\\fff.dat");
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(t);
oos.flush();
oos.close();

FileInputStream fis  = new FileInputStream("F:\\fff.dat");
ObjectInputStream ois  = new ObjectInputStream(fis);
Ex tt = (Ex)ois.readObject();
System.out.println(tt.i + " " + tt.j +" " + tt.k);
}
}
class Ex implements Serializable{

private static final long serialVersionUID = 1L;
int i = 666;
int j = 777;
double d = 2.3;
transient int k = 888;
}


输出结果:

666 777 0

说明:

1)Serializable接口是标记性接口(给编译器看,编译器看到这个标记,它就知道对象可以序列化)

没有方法。(将对象转化为字节流读写就叫序列化)

2)transient(透明的)关键字 修饰的成员变量序列化时不予考虑。

补充:

externalizable接口(控制序列化过程)

java中IO这一部分就先总结到这。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java IO