首页 > 代码库 > Java核心类库-IO-随机访问文件(RandomAccessFile)

Java核心类库-IO-随机访问文件(RandomAccessFile)

随机访问文件:表示可以在该文件任何位置读取数据。

public class RandomAccessFileDemo
{
    public static void main(String[] args) throws Exception {
        File f = new File("raf.txt");
        //write(f);
        read(f);
    }

    private static void read(File f) throws Exception {
        //r表示只读
        RandomAccessFile raf = new RandomAccessFile(f,"r");
        System.out.println("文件指针位置:"+ raf.getFilePointer());//0
        byte b = raf.readByte();
        System.out.println(b);//64
        System.out.println("文件指针位置:"+ raf.getFilePointer());//1
        String str = raf.readUTF();
        System.out.println(str);//邓肯
        System.out.println("文件指针位置:"+ raf.getFilePointer());//9
        raf.seek(0);//设置文件指针位置
        System.out.println("文件指针位置:"+ raf.getFilePointer());//0
        raf.skipBytes(9);//设置文件指针跳过9个字节
        System.out.println("文件指针位置:"+ raf.getFilePointer());//9
        int i = raf.readInt();
        System.out.println(i);
        System.out.println("文件指针位置:"+ raf.getFilePointer());//13
        raf.close();
    }

    private static void write(File f) throws Exception {
        //rw表示读写
        RandomAccessFile raf = new RandomAccessFile(f,"rw");
        raf.writeByte(65);
        raf.writeUTF("邓肯");//使用的是修改之后的UTF-8,多两个字节
        raf.writeInt(20);
        raf.close();
    }
}

RandomAccessFile经常用来做多线程下载:

1. 多线程

2. 多点下载

Java核心类库-IO-随机访问文件(RandomAccessFile)