Чтение и запись битов в текстовые файлы на Java - PullRequest
0 голосов
/ 08 октября 2010

Я пытаюсь реализовать некоторые алгоритмы сжатия, и мне нужно иметь дело с битами в Java.

Что мне нужно сделать, так это то, что когда я записываю значение 1, то значение 2, эти числа сохраняются в файле как биты, поэтому размер файла будет 1 байт вместо 2, так как 1 хранится в 1 бите и 2 хранится в 2 битах.

Возможно ли это? Большое спасибо

1 Ответ

1 голос
/ 08 октября 2010

Все методы ввода / вывода имеют байт как самую низкую степень детализации.Вы можете написать биты, но вы должны упаковать их в байты самостоятельно.Возможно, будет уместен однобайтовый буфер, который вы записываете в файл после его заполнения.

Также обратите внимание, что нет способа узнать длину файла в битах (вы не знаете, еслипоследний байт был "полным").Так что ваше приложение должно как-то об этом позаботиться.

Вы также можете найти Google для BitOutputStream, которых есть несколько, но не в библиотеках, которые очень распространены.Возможно, просто используйте один из них.

Наконец, файл, который вы будете создавать, не будет "текстовым" файлом, он будет очень двоичным (даже больше, чем обычно ...)

...