博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
(三) 读写二进制数据
阅读量:4047 次
发布时间:2019-05-25

本文共 1263 字,大约阅读时间需要 4 分钟。

 

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之类的方法。

转载地址:http://gxyci.baihongyu.com/

你可能感兴趣的文章
输入设备节点自动生成
查看>>
GNU hello代码分析
查看>>
Qt继电器控制板代码
查看>>
wpa_supplicant控制脚本
查看>>
gstreamer相关工具集合
查看>>
RS232 四入四出模块控制代码
查看>>
linux 驱动开发 头文件
查看>>
container_of()传入结构体中的成员,返回该结构体的首地址
查看>>
ipconfig,ifconfig,iwconfig
查看>>
opensuse12.2 PL2303 minicom
查看>>
网络视频服务器移植
查看>>
Encoding Schemes
查看>>
移植QT
查看>>
如此调用
查看>>
计算机的发展史
查看>>
带WiringPi库的交叉编译如何处理一
查看>>
带WiringPi库的交叉笔译如何处理二之软链接概念
查看>>
Spring事务的七种传播行为
查看>>
ES写入找不到主节点问题排查
查看>>
Java8 HashMap集合解析
查看>>