簡體   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