Le Tutoriel de Java BufferedWriter
1. BufferedWriter
BufferedWriter est une sous-classe de Writer, qui est utilisée pour simplifier l'écriture de texte dans un flux de sortie de caractères (character output stream) et améliorer les performances du programme.
Le principe de fonctionnement de BufferedWriter ressemble à l'illustration ci-dessous:
BufferedWriter enveloppe à son intérieur un objet Writer, qui est responsable de l'écriture des données sur la cible (comme un fichier).
BufferdWrite remplace (override) les méthodes héritées de sa classe parente, telles que write(), write (char[]), ... pour s'assurer que les données seront écrites dans buffer et non dans la cible (par exemple, fichier). Mais lorsque buffer est plein, toutes les données dans buffer seront poussées dans Writer et libèrera buffer. Vous pouvez également appeler la méthode BufferedWriter.flush() pour pousser activement toutes les données de buffer vers Writer et libérer buffer. Les données sont également transférées de buffer vers Writer en appelant la méthode BufferedWriter.close().
Le soi-disant "buffer" mentionné ci-dessus n'est qu'un tableau de caractères. Vous pouvez spécifier la taille de ce tableau lors de l'initialisation de l'objet BufferedWriter.
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.
BufferedWriter constructors
BufferedWriter(Writer out)
BufferedWriter(Writer out, int sz)
- Le constructeur BufferedWriter(Write, int) crée un objet BufferedWriter avec un tableau avec buffer de taille spécifiée.
- Le constructeur BufferedWriter(Writer) crée un objet BufferedWriter avec un tableau avec buffer de taille par défaut (sz = 8192).
2. Examples
Exemple: créer un BufferedWriter avec une taille de tableau de buffer de 16384. Remarque: le type de données char de Java est de 2 bytes. Cela signifie que ce buffer a une taille de 32786bytes(32 Kb).
File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.
// Create Writer to write a file.
Writer writer = new FileWriter(outFile, StandardCharsets.UTF_8);
// Create a BufferedWriter with buffer array size of 16384 (32786 bytes = 32 KB).
BufferedWriter br = new BufferedWriter(writer, 16384);
Créer un BufferedWriter avec la taille de tableau de buffer par défaut (8192), ce qui équivaut à 16384 bytes (16 Kb).
File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.
// Create Writer to write a file.
Writer writer = new FileWriter(outFile, StandardCharsets.UTF_8);
// Create a BufferedWriter with default buffer array size of 8192 (16384 bytes = 16 KB).
BufferedWriter br = new BufferedWriter(writer);
Le codage complet de l'exemple:
BufferedWriterEx1.java
package org.o7planning.bufferedwriter.ex;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.nio.charset.StandardCharsets;
public class BufferedWriterEx1 {
public static void main(String[] args) throws IOException {
File outFile = new File("/Volumes/Data/test/outfile.txt");
outFile.getParentFile().mkdirs(); // Create parent folder.
// Create Writer to write a file.
Writer writer = new FileWriter(outFile, StandardCharsets.UTF_8);
// Create a BufferedWriter with buffer array size of 16384 (32786 bytes = 32 KB).
BufferedWriter br = new BufferedWriter(writer, 16384);
br.write("Line 1");
br.newLine();
br.write("Line 2");
br.flush();
br.newLine();
br.write("Line 3");
br.close();
}
}
Output:
outfile.txt
Line 1
Line 2
Line 3
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