Class BitOutputStream
java.lang.Object
fr.iutfbleau.sae.mpif.BitOutputStream
Décorateur de flux permettant l'écriture binaire à granularité du bit.
Cette classe encapsule un OutputStream existant et permet
l'écriture de bits individuellement ou par groupes.
Les bits sont accumulés afin de former des octets avant écriture.
Utilisée notamment pour l'encodage des fichiers compressés (ex : format PIF utilisant des codes de Huffman).
- Since:
- 2025-12-13
-
Constructor Summary
ConstructorsConstructorDescriptionBitOutputStream(OutputStream fluxSortie) Construit un écrivain binaire à partir d'un flux existant. -
Method Summary
Modifier and TypeMethodDescriptionvoidVide les buffers internes et ferme le flux de sortie.voidflush()Force l'écriture immédiate des données accumulées dans le flux sous-jacent.voidwriteBit(int bit) Écrit un bit dans le flux binaire.voidwriteBits(int valeur, int nombreBits) Écrit une séquence de bits correspondant à une valeur entière.voidwriteBitString(String codeBinaire) Écrit une séquence de bits à partir d'une chaîne de '0' et '1'.
-
Constructor Details
-
BitOutputStream
Construit un écrivain binaire à partir d'un flux existant.- Parameters:
fluxSortie- flux de sortie à décorer- Throws:
IllegalArgumentException- si le flux est nul
-
-
Method Details
-
writeBit
Écrit un bit dans le flux binaire.- Parameters:
bit- bit à écrire (0 ou 1)- Throws:
IOException- si une erreur d'écriture survientIllegalArgumentException- si le bit n'est ni 0 ni 1
-
writeBits
Écrit une séquence de bits correspondant à une valeur entière.- Parameters:
valeur- valeur contenant les bits à écrirenombreBits- nombre de bits à écrire (strictement positif)- Throws:
IOException- si une erreur d'écriture survient
-
flush
Force l'écriture immédiate des données accumulées dans le flux sous-jacent.- Throws:
IOException- si une erreur survient lors du flush
-
writeBitString
Écrit une séquence de bits à partir d'une chaîne de '0' et '1'.- Parameters:
codeBinaire- chaîne contenant uniquement '0' et '1'- Throws:
IOException- si une erreur d'écriture survientIllegalArgumentException- si la chaîne contient autre chose que '0' ou '1'
-
fermerFlux
Vide les buffers internes et ferme le flux de sortie.- Throws:
IOException- si une erreur survient lors de la fermeture
-