使用Java在文件中间写入字节的最佳方法是什么?
在文件中间进行读写与RandomAccessFile
在Java中使用一样简单。
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();
}
问题内容: 我需要使用java nio将巨大的字符串写入(附加)到平面文件。编码为ISO-8859-1。 目前,我们正在编写如下图所示。有没有 更好的 方法可以做到这一点? 编辑:尝试了两个选项。以下是结果。 使用ByteBuffer和Channel:花费了4402 ms 使用缓冲的Writer:占用563毫秒 问题答案: 我认为,如果不对软件进行基准测试,您将无法得到严格的答案。在适当的条件下,
问题内容: 我有一个程序,可以执行大量计算并经常将其报告到文件中。我知道频繁的写入操作会大大降低程序的速度,因此,为了避免出现这种情况,我希望有一个专门用于写入操作的线程。 现在,我正在用我写的这堂课(不耐烦的可以跳到问题的结尾): 然后我通过以下方式使用它: 尽管此方法运行良好,但我想知道: 是否有更好的方法来实现这一目标? 问题答案: 您的基本方法看起来不错。我将代码结构如下: 如果你不希望在
问题内容: 我想重写文件的内容。 到目前为止,我想到的是: 保存文件名 删除现有文件 用相同的名称创建一个新的空文件 将所需内容写入空文件 这是最好的方法吗?还是有更直接的方法,即不必删除和创建文件,而只需更改内容? 问题答案: 要使用FileOutputStream覆盖文件foo.log,请执行以下操作: 或使用FileWriter:
问题内容: 如何在Java中将字节数组写入文件? 问题答案: 可以使用IOUtils.write(字节[]数据,OutputStream的输出)从Apache的百科全书IO。
问题内容: 我必须在text [csv]文件中写入大量数据。我使用BufferedWriter写入数据,并且花费了大约40秒的时间来写入174 mb的数据。这是Java可以提供的最快速度吗? 注意:这40秒还包括从结果集中迭代和获取记录的时间。:) 174 mb用于结果集中的400000行。 问题答案: 你可以尝试删除BufferedWriter并直接使用FileWriter。在现代系统上,无论如
在我的一个java应用程序中,有一个字段,用户应该在其中输入时间。我知道,我可以简单地将其作为一个普通的保存,在验证时,我可以检查值等等。。。 但我认为还有更好的方法。。 例如,如果这是一个日期问题,那么JXDatePicker(随附带)可以非常方便地使用。最终,用户选择的是一个日期。 同样,也必须有更好的时间选择方法。如果你知道更好的解决方案,会有人分享你的知识吗? 任何想法都值得赞赏。非常感谢