(三) 读写二进制数据

 

DataOutput接口定义了用于二进制格式写数组、字符、boolean值和字符串的方法。writeChars,writeByte,writeInt,writeShort,writeLong,writeFloat,writeDouble,writeChar,writeBoolean,writeUTF。

注意:

(1)writeInt总是将一个整数写出为4字节的二进制数量值,而不管它有多少位,writeDouble总是将一个double值写出为8字节的二进制数量值,这样产生的结果不可读,但是对于给定类型的每个值,所需空间相同,读回也比解析文本要快。

(2)writeUTF方法使用修订版的8位Unicode转换格式写出字符串,与直接使用标准的UTF-8编码方式不同,因为没有其他方法会使用修订本的UTF-8,所以只在写出用于Java虚拟机的字符串时才使用writeUTF方法。其他的目的都应该使用writeChars方法。

 

读回数据时使用DataInput接口,readInt,readShort,readLong,readFloat,readDouble,readChar,readBoolean,readUTF

DataOutputStream和DataInputStream类分别实现了DataOut和DataInput接口,通过与字节源组合使用。

e.g.DataInputStream与FileInputStream组合

 

    DataOutputStream out = new DataOutputStream(new FileOutputStream("text.txt"));
    DataInputStream in = new DataInputStream(new FileInputStream("text.txt"));
     

随机方法文件RandomAccessFile

RandomAccessFile类可以在文件中的任何位置查找或写入数据。磁盘文件都是随机访问的,但是网络来的数据流不是。

(1)通过使用字符串"r"(用于读入访问)或"rw"(用于读入/写出访问)作为构造第二个参数来指定这个选项。

 

    RandomAccessFile in = new RandomAccessFile("test.txt", "r");
    RandomAccessFile inOut = new RandomAccessFile("test.txt", "rw");
 

(2)随机访问文件有一个表示下一个将被读入或写出的字节所处位置的文件指针。

seek方法可以将这个文件指针设置到文件内部的任意字节位置,seek的参数是一个long类型的整数,它的值位于0到文件按照字节来度量的长度之间。

(3)getFilePointer方法将返回文件指针的当前位置。

(4)RandomAccessFile类同时实现了DataInput和DataOutput接口,所以可以使用readInt/writeInt之类的方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值