我正在尝试将大量数据写入二进制文件。因为它是大量数据,所以快速完成这一点很重要,我希望能够将数据一个一个地写入整数。我尝试过RandomAccessFile
,等BufferedWriter
,DataOutputStream
但所有这些都太慢或无法写入整数。有什么想法可以帮助我吗?
问问题
887 次
3 回答
3
如果您编写正确的代码将整数转换为字节,则每个流都可以“写入整数”。
Java 中的两个“快速”IO 选项位于使用NIO 缓冲区BufferedOutputStream
之上。FileOutputStream
FileChannel
如果您所写的只是很多很多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 回答