Class BitOutputStream


  • public class BitOutputStream
    extends java.lang.Object
    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

      Constructors 
      Constructor Description
      BitOutputStream​(java.io.OutputStream fluxSortie)
      Construit un écrivain binaire à partir d'un flux existant.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      void fermerFlux()
      Vide les buffers internes et ferme le flux de sortie.
      void flush()
      Force l'écriture immédiate des données accumulées dans le flux sous-jacent.
      void writeBit​(int bit)
      Écrit un bit dans le flux binaire.
      void writeBits​(int valeur, int nombreBits)
      Écrit une séquence de bits correspondant à une valeur entière.
      void writeBitString​(java.lang.String codeBinaire)
      Écrit une séquence de bits à partir d'une chaîne de '0' et '1'.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • BitOutputStream

        public BitOutputStream​(java.io.OutputStream fluxSortie)
        Construit un écrivain binaire à partir d'un flux existant.
        Parameters:
        fluxSortie - flux de sortie à décorer
        Throws:
        java.lang.IllegalArgumentException - si le flux est nul
    • Method Detail

      • writeBit

        public void writeBit​(int bit)
                      throws java.io.IOException
        Écrit un bit dans le flux binaire.
        Parameters:
        bit - bit à écrire (0 ou 1)
        Throws:
        java.io.IOException - si une erreur d'écriture survient
        java.lang.IllegalArgumentException - si le bit n'est ni 0 ni 1
      • writeBits

        public void writeBits​(int valeur,
                              int nombreBits)
                       throws java.io.IOException
        Écrit une séquence de bits correspondant à une valeur entière.
        Parameters:
        valeur - valeur contenant les bits à écrire
        nombreBits - nombre de bits à écrire (strictement positif)
        Throws:
        java.io.IOException - si une erreur d'écriture survient
      • flush

        public void flush()
                   throws java.io.IOException
        Force l'écriture immédiate des données accumulées dans le flux sous-jacent.
        Throws:
        java.io.IOException - si une erreur survient lors du flush
      • writeBitString

        public void writeBitString​(java.lang.String codeBinaire)
                            throws java.io.IOException
        É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:
        java.io.IOException - si une erreur d'écriture survient
        java.lang.IllegalArgumentException - si la chaîne contient autre chose que '0' ou '1'
      • fermerFlux

        public void fermerFlux()
                        throws java.io.IOException
        Vide les buffers internes et ferme le flux de sortie.
        Throws:
        java.io.IOException - si une erreur survient lors de la fermeture