0

我正在尝试实现一些压缩算法,我需要处理 Java 中的位。

我需要做的是,当我写入值 1 然后写入值 2 时,这些数字作为位存储在文件中,因此文件大小将是 1 字节而不是 2,因为 1 存储在 1 位中,而 2 是以 2 位存储。

是否可以?非常感谢

4

1 回答 1

1

所有的 I/O 方法都有一个字节作为最低粒度。您可以写入位,但您必须自己将它们打包成字节。也许在文件填满后将其写入文件的单字节缓冲区是合适的。

另请注意,无法以位为单位知道文件的长度(您不知道最后一个字节是否“已满”)。所以你的应用程序需要以某种方式处理这个问题。

您也可以在谷歌上搜索“BitOutputStream”,其中有一些,但不在非常常见的库中。也许只使用其中之一。

最后,您将要创建的文件不会是“文本”文件,它将是非常二进制的(甚至比平时更多......)

于 2010-10-08T01:30:59.920 回答