A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 强子 黑马帝   /  2011-11-24 15:38  /  4895 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 强子 于 2011-11-24 15:56 编辑

在什么情况下用RandomAccessFile呢?

下面是我在看视频时记的笔记

RandomAccessFile
随机访问文件,自身具备读写方法
支持对随机访问文件的读取和写入
该类不算是IO体系种的子类,而是直接继承自Object。但是它是IO包中的成员,因为它具备读和写的功能。而且通过指针对数组的元素进行操作。
可以通过getFilePointer获取指针位置
同时可以通过seek改变指针的位置
其实其能够完成读写的原理是内部封装了字节输入流和输出流
通过构造函数可以看出,该类只能操作文件。而且操作文件还有模式,只读、只写等,而且该对象的构造要操作的文件不存在,会自动创建。
mode参数指定用以打开文件的访问模式,如果模式为只读 r,不会促行间文件。会去读取一个已存在文件,如果该文件不存在,而且会出现异常。如果模式为rw,操作文件不存在会自动创建,如果存在则不会覆盖

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

5 个回复

倒序浏览
当你想边读取数据边写入数据的时候,就可以用此类。
现在你可能觉着没什么用,但是我听一个高手说文件的断点下载就是依靠RandomAccess类来完成的。所以说一定要会用此类。
请版主加分。谢谢。

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
RandomAccessFile 效率很低 不会对于那种不是逐行都要读取的文件来说 是有点用处的 算是IO包 但是不属于流操作。
回复 使用道具 举报
强子 黑马帝 2011-11-24 15:52:18
板凳
边读取数据边写入数据的时候!
很好  谢谢!
回复 使用道具 举报
如果文件需要随机存取,那就得使用RandomAccessFile类。但它的I/O性能极差,可以考虑加入缓冲机制来提高效率

评分

参与人数 1技术分 +1 收起 理由
admin + 1

查看全部评分

回复 使用道具 举报
RandomAccessFile操作文件内容的时候,就好像操作一块内存区域一样,把字节用下标数字进行定位,通过调用RandomAccessFile的API方法,把指针的指向进行移动,达到随机存取数据的目的,它的主要方法有:
1.用length()方法获取文件的内容长度,
2.用seek()方法随机的到达任何需要存取数据的地方。
3.调用read()方法获取当前位置的数据,用write()方法写入数据。
4.完成需要以后,用close()关闭文件。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马