[英]Write to Binary files in Java
我正在尝试将大量数据写入二进制文件。 由于包含大量数据,因此快速完成非常重要,我希望能够将数据一一写入int。 我已经尝试过RandomAccessFile
, BufferedWriter
, DataOutputStream
等,但是所有这些速度太慢或无法写入整数。 有什么想法对我有帮助吗?
如果您编写正确的代码将整数转换为字节,则每个流都可以“写入整数”。
Java中的两个“快速” IO选项是FileOutputStream
之上的BufferedOutputStream
和具有NIO缓冲区的FileChannel
使用。
如果您编写的都是很多很多int
值,则可以使用IntBuffer
实例将数据传递到fileChannel
。
此外,“一次”通常与“快速”不兼容。 迟早,数据必须成块传输到磁盘。 如果您将数据少量地放入磁盘,则会发现此过程非常缓慢。 例如,您可以将整数值添加到缓冲区中,并在缓冲区填满时将其写入,然后重复。
看一下java.nio
包。 您将找到可用于所需目的的类。
好吧,一次将一个int写入文件并不是天生的快速操作。 即使使用bufferedwriter,您也可能会进行很多函数调用(如果尚未将缓冲区设置得足够大,则可能仍在进行大量文件写入操作)。
您是否尝试过将整数放入数组中,使用ByteBuffer将其转换为字节数组,然后将字节数组写入文件?
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.