Le Tutoriel de Java BufferedOutputStream
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.
- OutputStream
- ByteArrayOutputStream
- ObjectOutputStream
- PrintStream
- FileOutputStream
- FilterOutputStream
- PipedOutputStream
- DataOutputStream
- InflaterOutputStream
- DigestOutputStream
- DeflaterOutputStream
- CipherOutputStream
- CheckedOutputStream
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
- Le Tutoriel de Java CharArrayWriter
- Le Tutoriel de Java FilterReader
- Le Tutoriel de Java FilterWriter
- Le Tutoriel de Java PrintStream
- Le Tutoriel de Java BufferedReader
- Le Tutoriel de Java BufferedWriter
- Le Tutoriel de Java StringReader
- Le Tutoriel de Java StringWriter
- Le Tutoriel de Java PipedReader
- Le Tutoriel de Java LineNumberReader
- Le Tutoriel de Java PushbackReader
- Le Tutoriel de Java PrintWriter
- Tutoriel sur les flux binaires Java IO
- Le Tutoriel de Java IO Character Streams
- Le Tutoriel de Java BufferedOutputStream
- Le Tutoriel de Java ByteArrayOutputStream
- Le Tutoriel de Java DataOutputStream
- Le Tutoriel de Java PipedInputStream
- Le Tutoriel de Java OutputStream
- Le Tutoriel de Java ObjectOutputStream
- Le Tutoriel de Java PushbackInputStream
- Le Tutoriel de Java SequenceInputStream
- Le Tutoriel de Java BufferedInputStream
- Le Tutoriel de Java Reader
- Le Tutoriel de Java Writer
- Le Tutoriel de Java FileReader
- Le Tutoriel de Java FileWriter
- Le Tutoriel de Java CharArrayReader
- Le Tutoriel de Java ByteArrayInputStream
- Le Tutoriel de Java DataInputStream
- Le Tutoriel de Java ObjectInputStream
- Le Tutoriel de Java InputStreamReader
- Le Tutoriel de Java OutputStreamWriter
- Le Tutoriel de Java InputStream
- Le Tutoriel de Java FileInputStream
Show More