高效快捷读写文件之 RandomAccessFile 类解说

RandomAccessFile 类,也被称为随机访问文件类。,RandomAccessFile 可以说是 Java 体系中功能最为丰富的文件操作类,相比之前介绍的通过字节流或者字符流接口方式读写文件,RandomAccessFile 类可以跳转到文件的任意位置处进行读写数据,而无需把文件从头读到尾,但是该类仅限于操作文件,不能访问其他的 IO 设备,如网络、内存映像等。,所以如果需要访问文件的部分内容,而不是把文件从头读到尾,使用 RandomAccessFile 将是更好的选择。,实际上,虽然RandomAccessFile类具备随机读写数据的功能,但是它既不是InputStream的子类,也不是OutputStream的子类,绝大部分的方法都是从零开始写的,这可能是因为  RandomAccessFile 需要在文件里面前后移动,它的行为与其它的 I/O 类有着根本性的不同,所以相对比较独立。,RandomAccessFile对象类中内置了一个位置指示器,可以指向当前读写处的位置,当读写 n 个字节后,文件指示器将指向这 n 个字节后的下一个字节处。刚打开文件时,文件指示器指向文件的开头处,当移动文件指示器到新的位置时,随后的读写将从新的位置开始,这是它与其他的文件读写方式最大的不同。,基本上,RandomAccessFile的工作方式是,结合DataInputStream和DataOutputStream类完成数据的读写,再加上自己的一些方法,比如定位用的 getFilePointer方法,在文件里移动用的seek方法,以及判断文件大小length方法、跳过多少字节数的skipBytes方法等,来完成文件的随机访问和读写操作。,具体怎么使用呢,我们一起来看看!,下面先来看看一个简单的例子。,输出结果:,RandomAccessFile类为用户提供了两种构造方法,具体操作方式如下:,其实第二种构造方法也是new File()出来,再调用第一种构造方法,两者都可以获取随机访问文件对象。,至于mode,表示以何种方式打开文件,Java给开发者提供了四种mode值,具体解释如下!,图片图片,值得注意的地方是,**”rw”模式下,Java 并不强求指定的路径下一定存在某个文件,假如文件不存在,会自动创建**。,RandomAccessFile类为用户提供的方法比较多,我们可以关注下几个重要的方法即可,详细方法如下图!,图片图片,方法的使用,可以参考如下样例:,根据以上的方法介绍,我们可以利用RandomAccessFile实现一个在任意位置插入数据的操作,具体实例如下:,文件内容结果如下:,在实际的开发过程中,RandomAccessFile 的一个重要应用场景就是网络请求中的文件多线程下载及断点续传。,首先将文件分成几块,然后每块用不同的线程进行下载,下面是一个利用多线程在写文件时的例子:,本文主要围绕 RandomAccessFile 类的基本概念和常用方法,做了一次简单的知识总结,该类是 IO 流体系中功能最丰富的文件内容访问类,既可以读取文件中任意位置的内容,也可以向文件任意位置写入数据。,当然 RandomAccessFile 当读写大文件的时候,会出现内存溢出问题,此时可以采用内存映射文件方式进行读写数据,关于技术会在后期的文章中进行介绍。

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/27975.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年6月23日
下一篇 2023年7月15日