为了账号安全,请及时绑定邮箱和手机立即绑定
首页 手记 【九月打卡】第10天...

【九月打卡】第10天 文件传输基础——Java IO流 03

2022.09.18 14:26 32浏览

课程信息:

  • 课程名称:文件传输基础——Java IO流
  • 章节名称:RandomAccessFile基本操作
  • 讲师姓名:Cedar

课程内容:

RandomAccessFile操作步骤如下:

  1. java文件模型:在硬盘上的文件是byte byte byte 存储的,是数据的集合;
  2. 打开文件:有两种模式 “rw”(读写) “r”(只读)
    RandomAccessFile raf = new RandomAccessFile (file, “rw”);
    文件指针,打开文件时指针在开头 point = 0;
  3. 写方法:raf.write(int) —> 只写一个字节(后8位),同时指针指向下一个位置,准备再次写入
  4. 读方法:int b = raf.read() —> 读一个字节
  5. 关闭:文件读写完成以后一定要关闭(Oracle官方说明,若不关闭会产生意想不到的错误)
public static void main(String[] args) throws IOException {
        File demo = new File("demo");
        if(!demo.exists()){
            demo.mkdir();
        }
        File file = new File("raf.dat");
        if(!file.exists()){
            file.createNewFile();
        }

        RandomAccessFile raf = new RandomAccessFile(file, "rw");
        //指针的位置
        System.out.println(raf.getFilePointer());

        raf.write(1);
        System.out.println(raf.getFilePointer());
        raf.write('B');

        int i = 0x7fffffff;
        System.out.println(i);
        raf.write(i >>> 24);
        raf.write(i >>> 16);
        raf.write(i >>> 8);
        raf.write(i);
        System.out.println(raf.getFilePointer());

        //可以直接写一个int
        raf.writeInt(i);

        String s = "中";
        byte[] gbk = s.getBytes("gbk");
        raf.write(gbk);
        System.out.println(raf.length());

        //读文件,必须把指针移到头部
        raf.seek(0);
        //一次性读取,把文件中的内容都读到字节数组中
        byte[] buf = new byte[(int)raf.length()];
        raf.read(buf);

        System.out.println(Arrays.toString(buf));
        for (byte b: buf) {
            System.out.println(Integer.toHexString(b & 0xff)); //16进制输出
        }

        raf.close(); //关闭操作
    }

学习心得:

本次学习我学习了类的操作流程,这对于我们新手了解一个类来说是非常重要的步骤,JAVA提供的操作文件需要五步,通过本次学习会加深我们对类的了解,老师讲的非常好呀,是非常适合我的学习方式!

课程截图:

图片描述
图片描述

点击查看更多内容
0人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
手记
粉丝
0
获赞与收藏
2

关注TA,一起探索更多经验知识

同主题相似文章浏览排行榜

风间影月说签约讲师

50篇手记,涉及Java、MySQL、Redis、Spring等方向

进入讨论

Tony Bai 说签约讲师

146篇手记,涉及Go、C、Java、Python等方向

进入讨论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消