Class BitOutputStream

java.lang.Object
fr.iutfbleau.sae.mpif.BitOutputStream

public class BitOutputStream extends 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
    Construit un écrivain binaire à partir d'un flux existant.
  • Method Summary

    Modifier and Type
    Method
    Description
    void
    Vide les buffers internes et ferme le flux de sortie.
    void
    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(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 Details

    • BitOutputStream

      public BitOutputStream(OutputStream fluxSortie)
      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

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

      public void writeBits(int valeur, int nombreBits) throws 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:
      IOException - si une erreur d'écriture survient
    • flush

      public void flush() throws IOException
      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

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

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