• IO流19(完) --- RandomAccessFile实现数据的插入 --- 技术搬运工(尚硅谷)


    原hello.txt文件中的内容:abcdefghijklmn

    想要实现的效果是,将xyz插入到abc后面,将文件内容变成:abcxyzdefghijklmn

    @Test
    public void test18() throws IOException {
        File file = new File("hello.txt");
        RandomAccessFile raf = new RandomAccessFile(file, "rw");
        //将指针调到指针为3的位置,读取abc后面的内容,保存到builder中
        raf.seek(3);
        StringBuilder builder = new StringBuilder((int) file.length());
        byte[] buffer = new byte[20];
        int len;
        //此时只会读取指针为3及其后面的内容
        while ((len = raf.read(buffer)) != -1){
            builder.append(new String(buffer, 0, len));
        }
    
        //调回指针,写入“xyz”
        raf.seek(3);
        raf.write("xyz".getBytes());
        //指针此时已经自动移动到xyz后面。再写入复制的abc后面的内容
        raf.write(builder.toString().getBytes());
        
        raf.close();
    }
  • 相关阅读:
    新项目反思
    nei网访问
    react
    css沉默
    沉默
    node准备
    C++学习(八):删除文件
    利用工具格式化日期文本
    PageHelper 记录总条数不正确问题处理
    tk.mybatis 多个or条件拼接
  • 原文地址:https://www.cnblogs.com/noyouth/p/11751437.html
Copyright © 2020-2023  润新知