RandomAccessFile的应用

import java.io.*;
class Demo7 
{
    public static void main(String[] args) throws IOException
    {
        /*
         RandomAccessFile: 不属于IO体系,只能访问文件
                           内部既有字节输出流,也有字节输入流
                           内部有一个字节数组,可以通过指针设置,所以可以随机

        */

        //writeData();
        readData();
    }
    //读取数据
    public static void readData()throws IOException
    {
        RandomAccessFile random = new RandomAccessFile("random.txt","r");

        //默认指向文件的开头,读取刘能
        byte[] arr = new byte[4];
        int len = random.read(arr);

        int age = random.readInt();
        System.out.println(new String(arr,0,len)+","+age);

        random.seek(16);//设置指针指向赵四的起始位置

        len = random.read(arr);
        age = random.readInt();
        System.out.println(new String(arr,0,len)+","+age);

    }


    //随机写入数据
    public static void writeData()throws IOException
    {
        //模式为"rw",那么当文件不存在时会自动创建
        RandomAccessFile random = new RandomAccessFile("random.txt","rw");

        //默认指向文件的开头
        random.write("刘能".getBytes());
        random.writeInt(58);

        //指针指向哪儿?  8
        long pointer = random.getFilePointer();
        System.out.println("pointer="+pointer);

        //设置指针指向的位置
        random.seek(16);

        random.write("赵四".getBytes());//指针指向哪儿数据就被写到哪儿
        random.writeInt(56);

        pointer = random.getFilePointer();
        System.out.println("pointer="+pointer);

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值