0

我正在尝试将大量数据写入二进制文件。因为它是大量数据,所以快速完成这一点很重要,我希望能够将数据一个一个地写入整数。我尝试过RandomAccessFile,等BufferedWriterDataOutputStream但所有这些都太慢或无法写入整数。有什么想法可以帮助我吗?

4

3 回答 3

3

如果您编写正确的代码将整数转换为字节,则每个流都可以“写入整数”。

Java 中的两个“快速”IO 选项位于使用NIO 缓冲区BufferedOutputStream之上。FileOutputStreamFileChannel

如果您所写的只是很多很多int值,您可以使用IntBuffer实例将数据传递给fileChannel.

此外,“一次一个”通常与“快速”不兼容。迟早,数据必须以块的形式传输到磁盘。如果您将少量数据强制到磁盘,您会发现该过程非常缓慢。例如,您可以将整数值添加到缓冲区并在缓冲区填满时写入缓冲区,然后重复。

于 2012-09-09T16:54:38.947 回答
0

看看java.nio包装。您将找到可用于所需目的的类。

于 2012-09-09T16:54:29.127 回答
0

好吧,一次写入一个 int 文件并不是一种天生的快速操作。即使使用 bufferedwriter,您也可能会进行大量函数调用(如果您没有将缓冲区设置得足够大,可能仍会进行大量文件写入)。

您是否尝试过将整数放入数组中,使用 ByteBuffer 将其转换为字节数组,然后将字节数组写入文件?

于 2012-09-09T17:03:35.790 回答