2010-10-08 37 views
0

我試圖實現一些壓縮算法,並且我需要處理Java中的位。在Java中對文本文件進行讀寫位

我需要做的是,當我寫入數值1和數值2時,這些數字作爲位存儲在文件中,所以文件大小將是1字節而不是2,因爲1存儲在1中位和2被存儲在2位中。

可能嗎?非常感謝

回答

1

所有的I/O方法都有一個字節作爲最小粒度。你可以編寫比特,但你必須自己將它們打包成字節。也許一旦填滿文件,寫入文件的單字節緩衝區就是合適的。

另外請注意,沒有辦法知道文件的長度位(你不知道最後一個字節是否是「滿」)。所以你的應用程序需要以某種方式照顧。

你也可以谷歌的「BitOutputStream」,其中有一些,雖然不是在很常見的庫中。也許只是使用其中之一。

最後,您將創建該文件將不會是一個「文本」文件,這將是非常二進制(比平時更使...)

+0

BitOutputStream的伎倆,非常感謝:) – 2010-10-10 21:14:58

+0

http://sourceforge.net/projects/jflac/ ...對於任何需要使用它的人,不要忘記在寫完後調用object.flushByteAligned(),以便讓你的工作得到實現 – 2010-10-10 21:16:33