1. 二进制IO操作
主要通过InputStream和OutputStream类及其子类进行。方法和文本操作类似。
FileInputStream和FileOutputStream用于操作文件。
BufferedInputStream和BufferOutputStream和文本操作类似,只是默认的缓冲区大小为512字节。
DataInputStream和DataOutputStream用于包装InputStream和OutputStream,直接进行字符、实数、整数、布尔值等的读写。
DataOutputStream中writeChar方法写入Unicode编码,如果要写入ASCII吗,使用writeByte。

2. UTF编码
UTF编码存储字符使用的字节数不固定,小于0x7F的ASCII码用一个字节表示,小于0x7FF的Unicode编码用两个字节表示,其余的Unicode编码用三个字节表示。
UTF编码的开头几位表示该字符使用的字节数。如果第一位是0,则是单字节字符;如果前三位是110,则是双字节字符;如果前四位是1110,则是三字节字符。
字符串的长度则保存在UTF串的头两个字节。
DataInputStream和DataOutputStream分别有readUTF()和writeUTF()方法操作UTF编码。

3. 当一个Unicode码无法被转换为ASCII码时,产生的是”?”字符。

4. 对象IO操作
ObjectInputStream类和ObjectOutputStream类,使用readObject/writeObject方法进行读写。注意需要转型。

5. Serializeable接口
可写入对象流的对象称为可串化的,可串化对象都继承了java.io.Serializable接口,这是一个记号接口。
当一个对象被储存时,对象的类名、类的签名、实例变量的值都被储存,但是静态变量不会被储存。
如果对象中含有不能被串化的实例数据域,必须将该数据域声明为transient才能使得自身可串化。
一个对象第一次被储存时,对象的完整内容及序列号都会被保存,之后再存储该对象,仅仅写入序列号。

6. 随机文件访问
RandomAccessFile类同时继承了DataInput和DataOutput接口。
构造器中可以带mode参数,”rw”表示可读写,”r”表示只读。
读写操作都在一个称为文件指针指示的位置进行。
length()方法返回文件的长度。
sekk()方法在文件中跳跃。


posts - 403, comments - 310, trackbacks - 0, articles - 7
  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

2.24 Java notes - Simple Input and Output

Posted on 2007-04-22 20:25 ZelluX 阅读(307) 评论(0)  编辑  收藏 所属分类: OOP
2007-02-24 20:38:00
只有注册用户登录后才能发表评论。


网站导航: