黑马程序员技术交流社区

标题: 何时使用RandomAccessFile? [打印本页]

作者: 强子    时间: 2011-11-24 15:38
标题: 何时使用RandomAccessFile?
本帖最后由 强子 于 2011-11-24 15:56 编辑

在什么情况下用RandomAccessFile呢?

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

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


作者: 侯伟浩    时间: 2011-11-24 15:49
当你想边读取数据边写入数据的时候,就可以用此类。
现在你可能觉着没什么用,但是我听一个高手说文件的断点下载就是依靠RandomAccess类来完成的。所以说一定要会用此类。
请版主加分。谢谢。
作者: 梦女孩    时间: 2011-11-24 15:51
RandomAccessFile 效率很低 不会对于那种不是逐行都要读取的文件来说 是有点用处的 算是IO包 但是不属于流操作。

作者: 强子    时间: 2011-11-24 15:52
边读取数据边写入数据的时候!
很好  谢谢!
作者: 程佳佳    时间: 2011-11-24 16:08
如果文件需要随机存取,那就得使用RandomAccessFile类。但它的I/O性能极差,可以考虑加入缓冲机制来提高效率
作者: 白磊    时间: 2013-5-5 18:47
RandomAccessFile操作文件内容的时候,就好像操作一块内存区域一样,把字节用下标数字进行定位,通过调用RandomAccessFile的API方法,把指针的指向进行移动,达到随机存取数据的目的,它的主要方法有:
1.用length()方法获取文件的内容长度,
2.用seek()方法随机的到达任何需要存取数据的地方。
3.调用read()方法获取当前位置的数据,用write()方法写入数据。
4.完成需要以后,用close()关闭文件。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2