précédent | suivant | table des matières
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.
|
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.
|
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 :
|
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;
}