zoukankan      html  css  js  c++  java
  • 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();
            
            
            
            
        }
    
    }
  • 相关阅读:
    Windows 10 安装双系统 CentOS 7
    杨辉三角_蓝桥杯
    特殊回文数_蓝桥杯
    十进制转十六进制_蓝桥杯
    十六进制转十进制_蓝桥杯
    十六进制转八进制_蓝桥杯
    String_Java
    编译原理知识
    3D_solarSys
    布线问题&魔法花园_最短路径
  • 原文地址:https://www.cnblogs.com/qjlbky/p/5925464.html
Copyright © 2011-2022 走看看