在 Java 文件中间写入字节的最佳方法
Posted
技术标签:
【中文标题】在 Java 文件中间写入字节的最佳方法【英文标题】:Best Way to Write Bytes in the Middle of a File in Java 【发布时间】:2010-09-15 22:26:29 【问题描述】:使用 Java 在文件中间写入字节的最佳方法是什么?
【问题讨论】:
【参考方案1】:在文件中间读取和写入就像在 Java 中使用 RandomAccessFile
一样简单。
RandomAccessFile
,尽管它的名字,更像是InputStream
和OutputStream
,而不像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
【讨论】:
链接到的教程实际上并没有提到 RandomAccessFile 类。也许这个代替:tutorials.jenkov.com/java-io/randomaccessfile.html【参考方案3】:在不截断的情况下以写入模式打开文件,寻找所需的偏移量,然后写入所需的数据。请注意文本/二进制模式。
【讨论】:
【参考方案4】:我认为最好每次都创建文件块。下载文件后,将它们连接在一起。现在我正在努力。
【讨论】:
以上是关于在 Java 文件中间写入字节的最佳方法的主要内容,如果未能解决你的问题,请参考以下文章
使用 RandomAccessFile 的最佳方式是 Java