Chaque opération de lecture ou d'écriture peut être très coûteuse sur
certains flots ; c'est notamment le cas des accès à un fichier, ou des
accès à l'Internet. Pour éviter des opérations individuelles (sur un
octet ou sur un caractère à la fois), on préfère souvent travailler sur
un tampon (anglais buffer). Par exemple, pour écrire sur
un fichier, on écrira sur un flot-tampon, lequel est attaché à un flot
d'écriture sur un fichier. Les classes qui mettent en uvre ces
tampons sont :
Un flot de caractères de la classe BufferedReader permet des opérations supplémentaires (par exemple, lecture d'une ligne de texte, par la méthode readLine()). Il est très courant de connecter un tel tampon à un flot de lecture sur un fichier :
BufferedReader in = new BufferedReader(new FileReader("toto")); String s = in.readLine();
Symétriquement, pour écrire sur un fichier, il est préférable de travailler avec un tampon :
PrintWriter out = new PrintWriter( new BufferedWriter( new FileWriter("toto"))); out.println("un long texte");