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

InputStream

Classe abstraite définissant les méthodes principales de lecture dans un flux d'octets. C'est la super classes de toutes les classes permettant de lire dans un flux d'octets.

Les méthodes de lecture :

abstract int read() throws IOException
Lit l'octet suivant dans le flux, et le retourne. S'il n'y a pas d'octet suivant (parce que la fin de fichier est atteinte), retourne -1. Cette méthode «bloque» jusqu'à ce que l'octet soit lu, la fin de fichier atteinte, ou qu'une IOException soit levée.
int read(byte [] t)throws IOException
Lit au maximum t.length octets depuis le fichier et les range dans le tableau t
  • si t vaut null, une exception NullPointerException est levée.
  • si t a une taille 0,  aucun octet est lu et la méthode retourne 0.
  • si t a une taille non nulle : La méthode
    • retourne le nombre d'octets qui ont été lus.
    • retourne -1 si la fin de fichier est atteinte.
int read(byte[] t, int d, int l)
   throws IOException
Lit au maximum l octets depuis le fichier et les range dans le tableau t à partir de d.
  • si t vaut null, une exception NullPointerException est levée.
  • si t a une taille 0,  aucun octet est lu et la méthode retourne 0.
  • si t a une taille non nulle : La méthode
    • retourne le nombre d'octets qui ont été lus.
    • retourne -1 si la fin de fichier est atteinte.

La méthode de fermeture :

voidclose() throws IOException

Autres méthodes :

int available()
Le nombre d'octets qui peuvent être lus (ou sautés) sans que l'opération soit bloquante.  La méthode définie dans la classe retourne 0.  Pour un fichier available retourne le nombre d'octets du fichier ; pour une connexion réseau, le nombre d'octets disponible à un moment donné.
void mark ( int limite)
   throws IOException
Marque la position courante dans le flux. Un appel postérieur à la méthode reset,  repositionnera la tête de lecture à cette marque. limite indique le nombre d'octets qu'il faudra lire pour que cette marque devienne non valide.
boolean markSupported() 
   throws IOException
Retourne true si le flux autorise l'utilisation des méthode mark et reset.
void reset() throws IOException
Repositionne la tête de lecture à la dernière marque placée dans le flux. Lève une IOException :
  • si markSupported retourne false.
  • s'il n'y a pas de marque valide dans le flux.
long skip( long n) throws IOException
Saute n octets, et renvoie le nombre d'octets effectivement sautés.

Les méthodes de lecture avec un tableau en paramètre sont définies directement dans la classe InputStream :

public
  int read(byte b[]) throws IOException {
  return read(b, 0, b.length);
}


public int read(byte b[], int off, int len)throws IOException {
   if (b == null)  throw new NullPointerException();
   else if(off < 0 || len < 0 || len > b.length - off) throw new IndexOutOfBoundsException();
   else if (len == 0)  return 0;
   
   int c = read();
   if (c == -1) return -1;
   b[off] = (byte)c;
   int i = 1;
   for( ; i < len ; i++) {
      c = read();
      if (c == -1) break;
      b[off + i] = (byte)c;
   } 
   return i;
}

haut de la page