【JavaIO流】RandomAccessFile类

RandomAccessFile类

RandomAccessFile类创建的流称作随机流,与前面的输入输出流不同的是,RandomAccessFile类既不是InputStream类的子类,也不是OutputStream类的子类。但是RandomAccessFile类创建的流的指向既可以作为流的源,也可以作为流的目的地,换句话说,当准备对一个文件进行读写操作时,可以创建一个指向该文件的随机流即可,这样既可以从这个流中读取文件的数据,也可以通过这个流写入数据到文件。并且通过该类可以访问文件任意位置的信息。

构造函数

/**
 * 参数name用来确定一个文件名,给出创建的流的源,也是流的目的地;
 * 参数mode取r(只读)或rw(可读写)等访问权限,决定创建的流对文件的访问权力;
 */
public RandomAccessFile(String name, String mode);

/**
 * 参数file是一个File对象,给出创建的流的源,也是流的目的地;
 * 参数mode取r(只读)或rw(可读写)等访问权限,决定创建的流对文件的访问权力;
 */
public RandomAccessFile(File file, String mode);
  • 这里对第二个参数mode(模式)作详细说明 :表示了以何种方式打开文件,共有4种模式:"r""rw""rws""rwd"
    • "r":以只读方式打开。调用结果对象的任何 write 方法都将导致抛出 IOException
    • "rw":打开以便读取和写入。
    • "rws":打开以便读取和写入。相对于 "rw""rws" 还要求对“文件的内容”或“元数据”的每个更新都同步写入到基础存储设备。
    • "rwd":打开以便读取和写入,相对于 "rw""rwd" 还要求对“文件的内容”的每个更新都同步写入到基础存储设备。

什么是“元数据”,即metadata?
英文解释如下:
The definition of metadata is “data about other data.” With a file system, the data is contained in its files and directories, and the metadata tracks information about each of these objects: Is it a regular file, a directory, or a link? What is its size, creation date, last modified date, file owner, group owner, and access permissions?
大致意思是:
metadata是“关于数据的数据”。在文件系统中,数据被包含在文件和文件夹中;metadata信息包括:“数据是一个文件,一个目录还是一个链接”,“数据的创建时间(简称ctime)”,“最后一次修改时间(简称mtime)”,“数据拥有者”,“数据拥有群组”,“访问权限”等等。

"rw", “rws”, “rwd” 的区别

  • 当操作的文件是存储在本地的基础存储设备上时(如硬盘,NandFlash等),"rws""rwd""rw" 才有区别。
  • 当模式是 "rws" 并且 操作的是基础存储设备上的文件;那么,每次“更改文件内容(如write()写入数据)” 或 “修改文件元数据(如文件的mtime)”时,都会将这些改变同步到基础存储设备上。
  • 当模式是 "rwd" 并且 操作的是基础存储设备上的文件;那么,每次“
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值