java中I/O流中的随机流

随机流要实现RandomAccessFile这个方法
RandomAccessFile raf = new RandomAccessFile(“D:/IOTest/helloworld.txt”, “r”);读数据第二个参数是“r”写数据第二个参数是“rw”


//读数据
public class RandomDemo {
    /**
     * 断点续传 暂停后,可以从原来的地方接着继续传 多线程 断点下载 分块下载
     * 
     * @param args
     */

    public static void main(String[] args) {
        // 创建一个 随机流的对象
        try {
            // 使用dataInputStream
            RandomAccessFile raf = new RandomAccessFile(
                    "D:/IOTest/helloworld.txt", "r");
            char c = 0;
            raf.seek(2048);
            System.out.println("文件指针" + raf.getFilePointer());
            byte[] buf = new byte[1024];
            int len = 0;
            while ((len = raf.read(buf)) != -1) {
                System.out.println(new String(buf, 0, len));
                System.out.println("文件指针" + raf.getFilePointer());
            }
            //下面使用char来实现的和上面一样
            // while ((c = raf.readChar()) != -1) {
            // System.out.print(c);
            // System.out.println("文件指针" + raf.getFilePointer());
            // }
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
}


//写数据
public static void main(String[] args) {
        try {
            RandomAccessFile raf = new RandomAccessFile("file.txt", "rw");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            raf.writeUTF("你好,随机流");
            // 读
            raf.seek(0);// 跳到头
            // System.out.println(raf.readBoolean());
            // System.out.println(raf.readChar());
            // System.out.println(raf.readDouble());
            // System.out.println(raf.readUTF());

            // 最后面插入
            // 跳到最后
            raf.seek(raf.length());
            raf.writeUTF("插入到最后");

            // 插入到中间,从指定位置开始插入
            raf.seek(20);
            raf.writeUTF("插入到中间");

        } catch (Exception e) {
            e.printStackTrace();
        }

    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值