2010-10-08 14 views
0

Je suis en train de mettre en œuvre des algorithmes de compression, et je dois traiter avec des bits en Java. Ce que je dois faire est que quand j'écris la valeur 1 puis la valeur 2, ces nombres sont stockés dans le fichier comme bits, ainsi la taille de dossier sera 1 byte au lieu de 2, car 1 est stocké dans 1 bit et 2 est stocké en 2 bits.Lecture et écriture Bits dans des fichiers texte en Java

Est-ce possible? Merci beaucoup

Répondre

1

Toutes les méthodes d'E/S ont un octet comme la plus faible granularité. Vous pouvez écrire des bits, mais vous devez les emballer en octets par vous-même. Peut-être un tampon d'un octet que vous écrivez dans le fichier une fois qu'il se remplit serait approprié.

Notez également qu'il n'y a aucun moyen de connaître la longueur du fichier en bits (vous ne savez pas si le dernier octet était « plein »). Donc, votre application doit prendre soin de cela d'une manière ou d'une autre.

Vous pouvez aussi google pour « BitOutputStream », dont il y a peu, mais pas dans les bibliothèques qui sont très fréquentes. Peut-être juste en utiliser un.

Enfin, le fichier que vous allez créer ne sera pas un « texte » fichier, il sera très binaire (encore plus que d'habitude ...)

+0

BitOutputStream a fait l'affaire, merci beaucoup :) –

+0

http://sourceforge.net/projects/jflac/ ... pour tous ceux qui vont l'utiliser, ne pas oublier d'appeler object.flushByteAligned() après avoir écrit de manière à faire votre travail mis en œuvre –