Sobes.tech
Junior

Quel est l'avantage du buffering?

sobes.tech IA

Réponse de l'IA

La mise en mémoire tampon en Java I/O réduit le nombre d'accès aux opérations d'entrée/sortie de bas niveau, ce qui augmente considérablement les performances. Lire/écrire de gros blocs de données en un seul appel système est plus efficace que plusieurs opérations petites.

En lecture : BufferedInputStream lit les données du flux de base dans la mémoire tampon. Lorsqu'une petite portion de données est demandée, elle est prise dans le tampon sans nécessiter d'accès à la source (disque, réseau) à chaque fois. Ce n'est que lorsque le tampon est vide qu'une nouvelle lecture de bloc de données est effectuée.

En écriture : BufferedOutputStream écrit d'abord les données dans le tampon. L'écriture dans le flux de base se produit lorsque le tampon est plein ou lorsque la méthode flush() est appelée. Cela minimise le nombre d'appels système pour l'écriture.

Avantages :

  • Réduction des coûts supplémentaires : Diminue le nombre d'accès au système d'exploitation et au matériel.
  • Augmentation de la bande passante : Les données sont transmises en gros blocs.
  • Amélioration des performances : Le temps total des opérations d'entrée/sortie est réduit.

Exemple d'utilisation de BufferedInputStream :

import java.io.FileInputStream;
import java.io.BufferedInputStream;
import java.io.IOException;

public class BufferedReaderExample {
    public static void main(String[] args) {
        try (FileInputStream fileInputStream = new FileInputStream("example.txt");
             BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream)) {

            int data;
            while ((data = bufferedInputStream.read()) != -1) {
                // Traitement de l'octet lu
                System.out.print((char) data);
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}