在Java中在文件中间写入字节的最佳方法

18

在Java中,写入文件中间的字节的最佳方式是什么?

4个回答

25

在文件中间进行读写操作与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();
}

如果我不知道位置,或者有数百个文件需要在指定文本后插入数据,该怎么办? - VENKI
如果您不知道位置,则需要打开文件并读取它,以找到您需要写入的位置。 - jjnguy
1
我的 "file.txt" 包含这样的文本 "hi how you (newline) I am fine thanks",现在我想在文本中间插入 "are",我该怎么做?在此过程中,请注意我们正在处理大量大小的文件。 - VENKI
1
请注意,RandomAccessFile 将从我想要到达的位置覆盖文件的当前内容。 - super1ha1

6

1
链接的教程实际上没有提到RandomAccessFile类。也许应该使用这个链接:http://tutorials.jenkov.com/java-io/randomaccessfile.html - AndrewR

0

我认为每次创建文件分块是最好的。当文件下载完成时再将它们连接在一起。现在我正在处理这个问题。


0

以写模式打开文件,而不截断它,定位到所需的偏移量,并写入所需的数据。只需注意文本/二进制模式即可。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接