RandomAccessFile的使用

1 篇文章 0 订阅

首先,RandomAccessFile是一种流,一种可随机访问的文件流。

RandomAccessFile不同于其他IO流按顺序的访问磁盘文件,RandomAccessFile支持对磁盘文件的随机访问,这种随机性是由RandomAccessFile中的 文件指针来决定的。随机访问文件的行为类似存储在文件系统中的一个大型 byte 数组。存在指向该隐含数组的光标或索引,称为文件指针;输入操作从文件指针开始读取字节,并随着对字节的读取而前移此文件指针。如果随机访问文件以读取/写入模式创建,则输出操作也可用;输出操作从文件指针开始写入字节,并随着对字节的写入而前移此文件指针。写入隐含数组的当前末尾之后的输出操作导致该数组扩展。该文件指针可以通过 getFilePointer 方法读取,并通过 seek 方法设置。

使用RandomAccessFile应该了解和注意:

1、由于RandomAccessFile访问文件的行为类似操作存储在文件系统中的一个大型byte数组,因此RandomAccessFile适合操作二进制文件。对于其他格式的文件建议使用其他流进行 操作,不要滥用RandomAccessFile。

2、打开一个RandomAccessFile流相当于同时打开了一个文件输入流和一个文件输出流,输入和输出行为可以同时进行。

3、当要改变RandomAccessFile中的文件指针,要尽量避免使用seek方法,因为seek方法相当消耗性能,可以使用skipBytes(int n)方法替代。


使用RandomAccessFile操作带中文的文件可能会出现中文乱码,解决方案:

1、读:read(byte[] b);

2、写:write(byte[] b);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值