【问题标题】:Best Way to Write Bytes in the Middle of a File in Java在 Java 文件中间写入字节的最佳方法
【发布时间】:2010-09-15 22:26:29
【问题描述】:

使用 Java 在文件中间写入字节的最佳方法是什么?

【问题讨论】:

    标签: java file java-io


    【解决方案1】:

    在文件中间读取和写入就像在 Java 中使用 RandomAccessFile 一样简单。

    RandomAccessFile,尽管它的名字,更像是InputStreamOutputStream,而不像File。它允许您读取或查找文件中的bytes,然后开始写入您希望停止的任何字节。

    一旦你发现了这个类,如果你对常规文件 i/o 有基本的了解,它就会很容易使用。

    一个小例子:

    public static void aMethod(){
        RandomAccessFile f = new RandomAccessFile(new File("whereDidIPutTHatFile"), "rw");
        long aPositionWhereIWantToGo = 99;
        f.seek(aPositionWhereIWantToGo); // this basically reads n bytes in the file
        f.write("Im in teh fil, writn bites".getBytes());
        f.close();
    }
    

    【讨论】:

    • 如果我不知道位置,或者如果我有数百个文件,我必须在某些指定文本之后在它们中间插入数据怎么办?
    • 如果不知道位置,则需要打开文件读取,找到需要写入的位置。
    • 我的“file.txt”包含这样的文本“你好(换行符)我很好谢谢”现在我想在文本中间插入“是”我必须做什么?在执行此操作时请注意,我们正在处理大量大小的文件
    • 请注意,RandomAccessFile 会从 aPositionWhereIWantToGo 覆盖文件的当前内容
    【解决方案2】:

    使用RandomAccessFile

    【讨论】:

    【解决方案3】:

    在不截断的情况下以写入模式打开文件,寻找所需的偏移量,然后写入所需的数据。请注意文本/二进制模式。

    【讨论】:

      【解决方案4】:

      我认为最好每次都创建文件块。下载文件后,将它们连接在一起。现在我正在努力。

      【讨论】:

        猜你喜欢
        • 2012-11-29
        • 2021-09-08
        • 1970-01-01
        • 2016-10-19
        • 2011-06-28
        • 1970-01-01
        • 2011-01-03
        • 2013-10-21
        相关资源
        最近更新 更多