特点:

  1. 同时支持读写文件
  2. 支持随机访问文件

应用:

  1. 文件断点续传

    方法介绍

    构造方法

  2. public RandomAccessFile(String name, String mode);

  3. public RandomAccessFile(File file, String mode);

参数1,表示一个文件路径或 File 对象;参数2,表示操作模式,共有四种取值:

r 只读,尝试调用写入操作会返回 IOException
rw 读写
rws 读写,在”rwd”的基础上对内容同步的要求更加严苛,每write修改一个byte都会直接修改到磁盘中。
rwd 读写,只会在cache满挥着调用RandomAccessFile.close()的时候才会执行内容同步操作。

跳过/偏移

  1. public int skipBytes(int n):跳过 n 个字节数,该方法根据相对当前读取的位置跳过;
  2. public void seek(long pos):设置偏移量,从偏移后的位置开始读取,该方法每次都会相对于文件开头位置跳过;

TODO

  1. 多线程实现文件拆分和合并
  2. 文件断点续传