5. 程序员眼中的文件¶
程序员对随机访问文件的逻辑视图是单个字节数组。 与文件的交互可以看作一个通信通道, 用于发出以下三种指令之一:从文件的当前位置读取字节、 在文件的当前位置写入字节,以及移动文件中的当前位置。 你通常不会看到字节如何存储在磁盘的扇区、簇等中。 从逻辑地址到物理地址的映射由文件系统完成, 扇区级缓冲由 磁盘控制器 自动完成。
处理磁盘文件中的记录时,访问顺序对 I/O 时间 有很大影响。 随机访问 过程按与文件中逻辑顺序 无关的顺序处理记录。 顺序访问 按文件中逻辑出现的 顺序处理记录。 如果磁盘文件的物理布局与其逻辑布局匹配, 顺序处理需要更少的寻道时间, 这在磁盘上创建文件时自由空间百分比较高时可以预期。
Java 提供了几种操作磁盘文件的机制。
最常用的是 RandomAccessFile 类。
以下方法可用于操作文件中的信息。
RandomAccessFile(String name, String mode):类构造函数, 打开磁盘文件进行处理。read(byte[] b):从文件中的当前位置读取一些字节。 当字节被读取时,当前位置向前移动。write(byte[] b):在文件中的当前位置写入一些字节 (覆盖该位置已有的字节)。 当字节被写入时,当前位置向前移动。seek(long pos): 将文件中的当前位置移动到pos。 这允许读取或写入文件中任意位置的字节。close():处理完成后关闭文件。
