【Java笔记(3)】RandomAccessFileDome,随机文件读取类

一、JDK介绍

1、JDK定义

public class RandomAccessFile
extends Object
implements DataOutput, DataInput, Closeable

2、构造方法

public RandomAccessFile(File file,
                        String mode)
                 throws FileNotFoundException
public RandomAccessFile(String name,
                        String mode)
                 throws FileNotFoundException
  • 模式

在这里插入图片描述

在这里插入图片描述

二、演示代码

1.写入

package io;
import java.io.File;
import java.io.RandomAccessFile;

/**
 * 随机的文件读取操作,注意要以固定的长度写入
 *
 * @ClassName: RandomAccessFileDome
 * @Author: Xlu103
 * @Date: 2020-06-04 19:54
 **/
public class RandomAccessFileDome {
    public static void main(String[] args) throws Exception{
        File file =new File("src"+File.separator+"io"+File.separator+"xlu.txt");
        RandomAccessFile raf = new RandomAccessFile(file, "rw");
        //姓名占8位 int占4位
        String[] name = new String[]{"zhangsan","lisi    ","wangwu  "};
        int[] age = new int[]{20, 60, 15};
        for (int i = 0; i < name.length; i++) {
            //写入字符串
            raf.write(name[i].getBytes());
            //写入名字
            raf.writeInt(age[i]);
        }
    }
}

2.读取

package io;
import java.io.File;
import java.io.RandomAccessFile;

/**
 * 随机的文件读取操作,注意要以固定的长度写入
 *
 * @ClassName: RandomAccessFileDome
 * @Author: Xlu103
 * @Date: 2020-06-04 19:54
 **/
public class RandomAccessFileDome {
    public static void main(String[] args) throws Exception{
        File file =new File("src"+File.separator+"io"+File.separator+"xlu.txt");
        RandomAccessFile raf = new RandomAccessFile(file, "rw");
        byte []data=new byte[8];
        int  len=0;
        //跳24个字节,找到王五
        raf.skipBytes(24);
        //用于存名字
        len=raf.read(data);
        System.out.println("姓名:"+new String(data, 0, len).trim()+",年龄:"+raf.readInt());
        //跳回到初始位置找到张三
        raf.seek(0);
        len=raf.read(data);
        System.out.println("姓名:"+new String(data, 0, len).trim()+",年龄:"+raf.readInt());
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值