IO-(RandomAccessFile--随机读取数据流)

1- RandomAccessFiled的理解

1- RandomAccessFile直接继承与java.lang.Object类的实现DataInput和DataOutput接口
2- RandomAccessFile 既可以做一个"输入流",也可以做一个"输出流"
使用的小细节:
   1- 使用- RandomAccessFile会有两个参数
   2- 参数-mode: r-只能读
                 rw-读入和写出
                 rwd-读入和写出,同步文件内容的更新
                 rws:读入和写出,同步文件内容和原数据的更新

3- 如果使用-RandomAccessFile作为"输出流"时,写出的文件如果不存在,则在执行过程中自动创建
   如果写出到的文件存在,则会对原有文件内容进行覆盖(默认情况下,重头覆盖),重头,可以用-seek方法

4- 可以通过相关操作,实际-RandomAccessFile"插入"数据的效果

2- RandomAccessFiled的操作

public class RandomAccessFileTest {
    @Test
    public void test1() {
        RandomAccessFile randomAccessFile1 = null;
        RandomAccessFile randomAccessFile2 = null;
        try {
            //使用-RandomAccessFile-复制操作(主要测试:r、rw)
            //1-
            randomAccessFile1 = new RandomAccessFile(new File("方园.jpeg"), "r");
            randomAccessFile2 = new RandomAccessFile(new File("方园2.jpeg"), "rw");
            //2-
            byte[] r = new byte[1024];
            int len;
            while ((len = randomAccessFile1.read(r)) != -1) {
                randomAccessFile2.write(r);
            }
            System.out.println("复制成功-Success");
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            if (randomAccessFile1 != null)
                try {
                    randomAccessFile1.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            if (randomAccessFile2 != null)
                try {
                    randomAccessFile2.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
        }
    }
/* 3- 4(代码块略)
3- 如果使用-RandomAccessFile作为"输出流"时,写出的文件如果不存在,则在执行过程中自动创建
    如果写出到的文件存在,则会对原有文件内容进行覆盖(默认情况下,重头覆盖),重头,可以用-seek方法

4- 可以通过相关操作,实际-RandomAccessFile"插入"数据的效果
     */
}

posted on   陈嘻嘻-  阅读(209)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示