logo

Classe Java BufferedOutputStream

En Java, la classe BufferedOutputStream est utilisée pour écrire plus efficacement des données dans un flux de sortie. Il ajoute un tampon à un autre flux de sortie réduisant le nombre d'opérations d'E/S en stockant temporairement les données en mémoire avant de les écrire vers la destination (comme un fichier).

Il appartient au package java.io et étend la classe FilterOutputStream.

Déclaration de classe

la classe publique BufferedOutputStream étend FilterOutputStream



  • Améliore les performances d'E/S en utilisant un tampon pour réduire l'accès direct au disque.
  • Les données sont écrites dans le tampon et ce n'est que lorsque le tampon est plein (ou vidé) qu'elles sont envoyées au flux de sortie sous-jacent.
  • Généralement utilisé avec FileOutputStream.
  • Aide à écrire des données d'octets telles que des fichiers texte d'images et des données binaires.

Constructeurs

  • BufferedOutputStream (sortie OutputStream) : Crée un flux de sortie mis en mémoire tampon avec une taille de tampon par défaut de 8 192 octets.
  • BufferedOutputStream (OutputStream hors taille entière) : Crée un flux de sortie mis en mémoire tampon avec la taille de tampon spécifiée.

Méthodes importantes

MéthodeDescription
void write(int b)Écrit un seul octet dans le flux de sortie.
void write(byte[] b int off int len)Écrit une partie du tableau d'octets dans le flux de sortie.
void flush()Vide le tampon et force l'écriture de tous les octets de sortie mis en tampon.
void close()Ferme le flux en le vidant en premier.

Java
import java.io.*; public class BufferedOutputStreamExample {  public static void main(String[] args) {  String data = 'BufferedOutputStream in Java Example';  try {  FileOutputStream fileOut = new FileOutputStream('output.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  byte[] bytes = data.getBytes();  bufferOut.write(bytes);  bufferOut.close();  System.out.println('Data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Sortie (contenu de output.txt) :

BufferedOutputStream dans l'exemple Java

Exemple 2 : Utilisation de la méthode flush()

Java
import java.io.*; public class FlushExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('flush.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut);  bufferOut.write('Hello'.getBytes());  bufferOut.flush(); // ensures data is written immediately  bufferOut.close();  System.out.println('Flush example completed.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Sortie (contenu de flush.txt) :

Bonjour

Java
import java.io.*; public class LargeDataExample {  public static void main(String[] args) {  try {  FileOutputStream fileOut = new FileOutputStream('large.txt');  BufferedOutputStream bufferOut = new BufferedOutputStream(fileOut 8192); // custom buffer size  for (int i = 0; i < 1000; i++) {  bufferOut.write(('Line ' + i + 'n').getBytes());  }  bufferOut.close();  System.out.println('Large data written successfully.');  } catch (IOException e) {  e.printStackTrace();  }  } } 

Résultat (contenu des premières lignes du fichier large.txt) :

Ligne 0

Ligne 1

Ligne 2

...

Avantages

  • Performances d'écriture plus rapides par rapport aux flux sans tampon.
  • Réduit le nombre d’opérations d’écriture physique.
  • Permet d'écrire efficacement des données volumineuses.
Créer un quiz