Java BufferedOutputStream (avec des exemples)

Dans ce didacticiel, nous allons découvrir Java BufferedOutputStream et ses méthodes à l'aide d'exemples.

La BufferedOutputStreamclasse du java.iopackage est utilisée avec d'autres flux de sortie pour écrire les données (en octets) plus efficacement.

Il étend la OutputStreamclasse abstraite.

Fonctionnement de BufferedOutputStream

Le BufferedOutputStreammaintient une mémoire tampon interne de 8192 octets .

Pendant l'opération d'écriture, les octets sont écrits dans la mémoire tampon interne au lieu du disque. Une fois le tampon rempli ou le flux fermé, tout le tampon est écrit sur le disque.

Par conséquent, le nombre de communications avec le disque est réduit. C'est pourquoi l'écriture d'octets est plus rapide en utilisant BufferedOutputStream.

Créer un BufferedOutputStream

Pour créer un BufferedOutputStream, nous devons d'abord importer le java.io.BufferedOutputStreampackage. Une fois que nous avons importé le package, voici comment créer le flux de sortie.

 // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(String path); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferOutputStream(file); 

Dans l'exemple ci-dessus, nous avons créé un BufferdOutputStreamtampon nommé avec le FileOutputStreamfichier nommé.

Ici, la mémoire tampon interne a la taille par défaut de 8192 octets. Cependant, nous pouvons également spécifier la taille du tampon interne.

 // Creates a BufferedOutputStream with specified size internal buffer BufferedOutputStream buffer = new BufferOutputStream(file, int size); 

Le tampon aidera à écrire des octets dans des fichiers plus rapidement.

Méthodes de BufferedOutputStream

La BufferedOutputStreamclasse fournit des implémentations pour différentes méthodes de la OutputStreamclasse.

write (), méthode

  • write() - écrit un seul octet dans le tampon interne du flux de sortie
  • write(byte() array) - écrit les octets du tableau spécifié dans le flux de sortie
  • write(byte() arr, int start, int length) - écrit le nombre d'octets égal à la longueur dans le flux de sortie d'un tableau à partir de la position de début

Exemple: BufferedOutputStream pour écrire des données dans un fichier

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a line of text inside the file"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream("output.txt"); // Creates a BufferedOutputStream BufferedOutputStream output = new BufferedOutputStream(file); byte() array = data.getBytes(); // Writes data to the output stream output.write(array); output.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Dans l'exemple ci-dessus, nous avons créé un flux de sortie tamponné nommé output avec FileOutputStream. Le flux de sortie est lié au fichier output.txt .

 FileOutputStream file = new FileOutputStream("output.txt"); BufferedOutputStream output = new BufferedOutputStream(file); 

Pour écrire des données dans le fichier, nous avons utilisé la write()méthode.

Ici, lorsque nous exécutons le programme, le fichier output.txt est rempli du contenu suivant.

 This is a line of text inside the file. 

Remarque : La getBytes()méthode utilisée dans le programme convertit une chaîne en un tableau d'octets.

flush (), méthode

Pour effacer le tampon interne, nous pouvons utiliser la flush()méthode. Cette méthode force le flux de sortie à écrire toutes les données présentes dans la mémoire tampon dans le fichier de destination. Par exemple,

 import java.io.FileOutputStream; import java.io.BufferedOutputStream; public class Main ( public static void main(String() args) ( String data = "This is a demo of the flush method"; try ( // Creates a FileOutputStream FileOutputStream file = new FileOutputStream(" flush.txt"); // Creates a BufferedOutputStream BufferedOutputStream buffer = new BufferedOutputStream(file); // Writes data to the output stream buffer.write(data.getBytes()); // Flushes data to the destination buffer.flush(); System.out.println("Data is flushed to the file."); buffer.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Production

 Les données sont vidées dans le fichier. 

Lorsque nous exécutons le programme, le fichier flush.txt est rempli avec le texte représenté par la chaîne de données.

close (), méthode

Pour fermer le flux de sortie mis en mémoire tampon, nous pouvons utiliser la close()méthode. Une fois la méthode appelée, nous ne pouvons pas utiliser le flux de sortie pour écrire les données.

Pour en savoir plus, visitez Java BufferedOutputStream (documentation Java officielle).

Articles intéressants...