首页 > Java入门教程(旧版) > Java输入输出流
			Java RandomAccessFile类:随机读写文件
Java.io 包提供了 RandomAccessFile 类用于随机文件的创建和访问,使用这个类,可以跳转到文件的任意位置读写数据。程序可以在随机文件中插入数据,而不会破坏该文件的其他数据。此外,程序也可以更新或删除先前存储的数据,而不用重写整个文件。
RandomAccessFile 类是 Object 类的直接子类,包含两个主要的构造方法用来创建 RandomAccessFile 的对象,如表1所示。
	
需要注意的是,mode 表示所创建的随机读写文件的操作状态,其取值包括:
表2列出了 RandowAccessFile 类常用的方法及说明。
	
【示例】模仿系统日志,将数据写入到文件尾部。
声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
			
			RandomAccessFile 类是 Object 类的直接子类,包含两个主要的构造方法用来创建 RandomAccessFile 的对象,如表1所示。
| 构造方法 | 功能描述 | 
|---|---|
| public RandomAccessFile(String name, String mode) | 指定随机文件流对象所对应的文件名,以 mode 表示对文件的访问模式 | 
| public RandomAccessFile (File file, String mode) | 以 file 指定随机文件流对象所对应的文件名,以 mode 表示访问模式 | 
需要注意的是,mode 表示所创建的随机读写文件的操作状态,其取值包括:
- r:表示以只读方式打开文件。
- rw:表示以读写方式打开文件,使用该模式只用一个对象即可同时实现读写操作。
表2列出了 RandowAccessFile 类常用的方法及说明。
| 方法 | 功能描述 | 
|---|---|
| long length() | 返回文件长度 | 
| void seek(long pos) | 移动文件位置指示器,pos 指定从文件开头的偏离字节数 | 
| int skipBytes(int n) | 跳过 n 个字节,返回数为实际跳过的字节数 | 
| int read() | 从文件中读取一个字节,字节的高 24 位为 0,若遇到文件结尾,返回-1 | 
| final byte readByte() | 从文件中读取带符号的字节值 | 
| final char readChar() | 从文件中读取一个 Unicode 字符 | 
| final void writeChar(inte c) | 写入一个字符,两个字节 | 
【示例】模仿系统日志,将数据写入到文件尾部。
import java.io.*;
class Demo{
    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("www.weixueyuan.net.log","rw");
            myFile.seek(myFile.length());  //移动到文件结尾
            myFile.writeBytes(s+"\n");  //写入数据
            myFile.close();
        }
        catch(IOException e){}
    }
}
程序运行后在目录中建立一个 www.weixueyuan.net.log 的文件,每次运行时输入的内容都会在该文件内容的结尾处添加。声明:《Java系列教程》为本站“54笨鸟”官方原创,由国家机构和地方版权局所签发的权威证书所保护。
 
	