Java中文件的随机读写

    |     2015年5月20日   |   输入输出(IO)操作   |     0 条评论   |    1927

java.io 包提供了 RandomAccessFile 类,用来创建和访问随机文件。使用这个类,可以跳转到文件的任意位置读写数据:插入时不必破坏其余内容,更新或删除先前数据时也不必重写整个文件。

一、构造方法

RandomAccessFile 是 Object 的直接子类,主要用下面两个构造方法创建对象:

file1

构造方法 说明
RandomAccessFile(String name, String mode) 按文件名打开;mode 常用 “r” 只读、”rw” 读写
RandomAccessFile(File file, String mode) 按 File 对象打开,mode 含义相同

文件指针可以用 seek(long pos) 挪到任意字节位置;length() 给出当前文件长度,常用来定位到末尾追加。

二、追加写入日志

【例 10-12】模仿系统日志,把键盘输入写到文件尾部。

import java.io.*;
class ep10_12 {
    public static void main(String args[]) throws IOException {
        try {
            BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            String s = in.readLine();
            RandomAccessFile myFile = new RandomAccessFile("ep10_12.log", "rw");
            myFile.seek(myFile.length());  // 移动到文件结尾
            myFile.writeBytes(s + "\n");   // 写入数据
            myFile.close();
        } catch (IOException e) {}
    }
}

程序运行后会在当前目录建立 ep10_12.log。每次运行输入的内容都会追加到文件末尾,不会覆盖已有记录。

一句话总结:RandomAccessFile 靠文件指针随机定位;seek(length()) 就能在尾部追加,不必重写整文件。

转载请注明来源:Java中文件的随机读写
本文链接地址:https://ai.zhousir.top/?p=668
回复 取消