RandomAccessFile java积累

项目中用到这个类,发现没用过,漏洞,写一下。
代码

 public static void main(String[] args){
        // 写入一个整型数组数据到d:/a.txt文件中
        RandomAccessFile raf = null;
        try {
            int data[] = {10,20,30,40,50};// 请分配32bit一组的连续空间,存放数值10,20,30,40,50
            raf = new RandomAccessFile("d:/a.txt","rw");//文件d:/a.txt可读写,从任意位置(最小单元,字节)开始
            for(int i =0;i<data.length;i++) {
                raf.writeInt(data[i]);// 将数值写进文件
            }
            // 读出第一个整数
            System.out.println("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面"); // 查看指针位置
            raf.seek(0);
            System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
            int tmp = raf.readInt();
            System.out.println("数据是 "+tmp);
            // 读出第二个整数
            System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
            tmp = raf.readInt();
            System.out.println("数据是 "+tmp);
            // 读出最后一个整数
            raf.seek(4*4);
            System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
            tmp = raf.readInt();
            System.out.println("数据是 "+tmp);
            System.out.println();
            // 读出文件中所有数据
            for(int i=0;i<data.length;i++){
                raf.seek(4*i);
                System.out.print("指针在距离文件开头第 "+raf.getFilePointer()+" 字节后面,"+"\t");
                tmp = raf.readInt();
                System.out.println("数据是 "+tmp);
            }

        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            try {
                raf.close();
            }catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

运行结果:
在这里插入图片描述

raf.length的结果是raf中设置的文件的字节数量
一个整形4个字节,6个就是24个字节

public static void main(String[] args) {
        RandomAccessFile raf = null;
        try{
            int data[] = {10,20,30,40,50,60};
            raf = new RandomAccessFile("d:/c.txt","rw");
            for(int i =0;i<data.length;i++){
                raf.writeInt(data[i]);
            }
            long length = raf.length();
            System.out.println("文件长度??"+length);// 文件数据的字节个数

        }catch (Exception e) {
            e.printStackTrace();
        }finally {
            try{
                raf.close();
            }catch (Exception e) {
                e.printStackTrace();
            }

        }
    }

运行结果
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值