devstory

Le Tutoriel de Java BufferedOutputStream

  1. BufferedOutputStream
  2. Examples

1. BufferedOutputStream

BufferedOutputStream est une sous-classe de OutputStream, qui est utilisée aux fins de simplifier l'écriture de texte dans un flux de sortie binaire (binary output stream) et d'améliorer les performances du programme.
L'exemple suivant illustre le principe de fonctionnement de BufferedOutputStream:
BufferedOutputStream enveloppe à son intérieur un objet OutputStream, qui est responsable de l'écriture de données sur la cible (comme un fichier, par exemple).
BufferedOutputStream remplace les méthodes héritées de sa classe parente, telles que write(), write(byte []), ... pour s'assurer que les données seront écrites dans buffer et non dans la cible (comme le fichier, par exemple). Mais lorsque buffer est plein, toutes les données dans buffer seront poussées dans OutputStream et dans buffer libre. Vous pouvez également convoquer la méthode BufferedOutputStream.flush() pour pousser activement toutes les données de buffer vers OutputStream et effacer buffer. Les données sont également transférées de buffer vers OutputStream lors de l'appel de la méthode BufferedOutputStream.close().
Ce qu'on appelle "buffer" susmentionné n'est qu'un tableau de byte. Vous pouvez spécifier la taille de ce tableau au cours de l'initialisation de l'objet BufferedOutputStream.
Les données qui sont temporairement écrites dans buffer minimisent l'écriture continue sur la cible (par exemple, les fichiers sur un disque dur), améliorant ainsi les performances du programme.
BufferedOutputStream constructors
BufferedOutputStream(OutputStream out)    

BufferedOutputStream(OutputStream out, int size)
  • Le constructeur BufferedOutputStream(OutputStream, int) crée un objet BufferedOutputStream avec un tableau avec buffer de taille spécifiée.
  • Le constructeur BufferedOutputStream(OutputStream) crée un objet BufferedOutputStream avec un tableau avec buffer de taille par défaut (size = 8192).

2. Examples

Exemple: Créer un BufferedOutputStream avec une taille de tableau de buffer de 16384. Cela signifie que ce buffer la une taille de 16384 bytes (16 KB).
File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.

// Create OutputStream to write a file.
OutputStream os = new FileOutputStream(outFile);

// Create a BufferedOutputStream with buffer array size of 16384 (16384 bytes = 16 KB).
BufferedOutputStream br = new BufferedOutputStream(os, 16384);
Créer un BufferedOutputStream avec la taille de tableau de buffer par défaut (8192), ce qui équivaut à 8192 bytes (8 KB).
File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.

// Create OutputStream to write a file.
OutputStream os = new FileOutputStream(outFile);

// Create a BufferedOutputStream with default buffer array size of 8192 (8192 bytes = 8 KB).
BufferedOutputStream br = new BufferedOutputStream(os);
L'encodage complet de l'exemple:
BufferedOutputStreamEx1.java
package org.o7planning.bufferedoutputstream.ex;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;

public class BufferedOutputStreamEx1 {

    private static final String file_path = "/Volumes/Data/test/outfile.txt";

    public static void main(String[] args) throws IOException {
        File outFile = new File(file_path);
        outFile.getParentFile().mkdirs(); // Create parent folder.

        // Create OutputStream to write a file.
        OutputStream os = new FileOutputStream(outFile);

        // Create a BufferedOutputStream with buffer array size of 16384 (16384 bytes = 16 KB).
        BufferedOutputStream br = new BufferedOutputStream(os, 16384);

        br.write("JP".getBytes("UTF-8"));
        br.write('\n');
        br.write("日本".getBytes("UTF-8"));
        br.write('\n');
        br.flush();

        br.write('\n');
        br.write("八洲".getBytes("UTF-8"));

        br.close();
    }
}
Output:
outfile.txt
JP
日本

八洲

Tutoriels Java IO

Show More