RandomAccessFile--随机访问文件

Posted 北方丶有佳人

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RandomAccessFile--随机访问文件相关的知识,希望对你有一定的参考价值。

RandomAccessFile:
特点:
1.只能操作文件
2.既能读,有能写
3.维护了一个byte数组,内部定义了字节流的读取和写入
4.通过对指针的操作可以实现对文件的任意位置的读取和写入

功能:getFilePointer seek用于操作文件指针的方法。

注:随机读写并不是说把数据写入任意一个随机的文件中,而是在指定的文件中通过文件指针实现在该文件指定位置的读取和写入。

import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;

public class RandomAccessFileDemo {

    public static void main(String[] args) throws IOException {
        
        /*
         * RandomAccessFile
         * 特点:
         * 1.只能操作文件
         * 2.既能读,有能写
         * 3.维护了一个byte数组,内部定义了字节流的读取和写入
         */
         
//        writeFile();
        
        readFile();
        
    }

    public static void readFile() throws IOException {
        
        RandomAccessFile raf = new RandomAccessFile("tempfile\\random.txt","r");
        
        //随机读取,只要通过设置指针的位置即可
        raf.seek(8);
        
        byte[] buf = new byte[4];
        raf.read(buf);
        String name = new String(buf);
        
        int age = raf.readInt();
        
        System.out.println(name+":"+age);
        
        raf.close();
        
    }

    public static void writeFile() throws IOException {
        
        //1.创建一个随机访问文件的对象
        //文件不存在,则创建,存在,则不创建不覆盖
        RandomAccessFile raf = new RandomAccessFile("tempfile\\random.txt","rw");
        
        //2.写入姓名和年龄
//        raf.write("张三".getBytes());
//        raf.writeInt(97);//保证整数的字节原样完整性
//        raf.write("李四".getBytes());
//        raf.writeInt(99);//保证整数的字节原样完整性
        
        //3.随机写入
        raf.seek(8);//设置指针的位置,可以随时修改文件里面的数据
        raf.write("王五".getBytes());
        raf.writeInt(100);
        System.out.println(raf.getFilePointer());
        //随机访问时希望数据有点规律
        
        raf.close();
        
        
        
        
    }

}

 

以上是关于RandomAccessFile--随机访问文件的主要内容,如果未能解决你的问题,请参考以下文章

Java:RandomAccessFile随机访问文件

RandomAccessFile类

随机访问流 RandomAccessFile

Java I/O---RandomAccessFile类(随机访问文件的读取和写入)

Java 实现文件随机读写-RandomAccessFile

RandomAccessFile