繁体   English   中英

用Java写入二进制文件

[英]Write to Binary files in Java

我正在尝试将大量数据写入二进制文件。 由于包含大量数据,因此快速完成非常重要,我希望能够将数据一一写入int。 我已经尝试过RandomAccessFileBufferedWriterDataOutputStream等,但是所有这些速度太慢或无法写入整数。 有什么想法对我有帮助吗?

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

Java中的两个“快速” IO选项是FileOutputStream之上的BufferedOutputStream和具有NIO缓冲区的FileChannel使用。

如果您编写的都是很多很多int值,则可以使用IntBuffer实例将数据传递到fileChannel

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM