précédent | suivant | table des matières

BufferedInputStream

BufferedInputStream permet de lire sur un flux dedonnées en utilisant une zone mémoire tampon (buffer). Cette classe se charge de lire sur le flux de données un grand nombre d'octets qu'elle garde dans un tampon. Tous les appels à la méthode read () ultérieurs sur une instance de cette classe renvoient des données provenant de ce tampon tant qu'il y reste des octets à lire ; le tampon est rechargé à partir du fichier quand on a épuisé toutes les informations qui s'y trouvent. L'utilisation de cette classe accélère la lecture des fichiers.

Constructeurs : 

BufferedInputStream (InputStream in)
Le tampon a la taille 8192 par défaut.
BufferedInputStream(InputStream in, int taille)
Le tampon a la taille taille

Soient les deux séquence suivantes :

InputStream entree = new FileInputStream("x");
for( int c = entree.read(); c !=-1; c = entree.read()) ... ;
entree.close();
InputStream entree = new BufferedInputStream(
   new FileInputStream("x"), 4096);
   for( int c = entree.read(); c !=-1; c = entree.read()) ... ;
   entree.close();

Les temps d'exécution, sur un même fichier, sont  :

Le temps de calcul pour la séquence suivante est du même ordre que pour la séquence sans BufferedInputStream :

InputStream entree = new FileInputStream("x");
byte [] b = new byte[8192];
for( int c = entree.read(b); c !=-1; c = entree.read(b))
   for ( int i = 0; i< c;++i)  ... ;

haut de la page