[java] mark, reset et InputStream

Fermé
karine - 30 mai 2005 à 10:51
 ArgAur - 10 juil. 2012 à 14:32
Bonjour !

J'essaye d'utiliser les méthodes mark et reset de la classe InputStream.

Mais mark reçoit en argument un int qui est une limite de marquage d'après ce que j'ai compris.

Moi je voudrais marquer le flux au tout début, quelle valeur je dois mettre ?

J'ai des erreurs à la compilation quelle que soit la valeur que je mets.

Quelqu'un a-t-il la réponse ?

Merci.
A voir également:

3 réponses

L'erreur arrive quand on dépasse un certain nombre de caractères après le mark(int).

exemple: br.mark(100) signifie que l'on peut faire un br.reset() pour revenir sur le marqueur temps que l'on n'a pas dépassé le 100ème caractère après le marqueur. sinon, on a cette erreur à l'exécution du reset().

java.io.IOException: Mark invalid
	at java.io.BufferedReader.reset(Unknown Source)


En revanche, j'ai des doutes sur l'utilité de faire un mark(1 000 000 000) au lieu de réinitialiser le bufferedReader.

InputStream ips = new FileInputStream(fichier);
InputStreamReader ipsr=new InputStreamReader(ips);
BufferedReader br=new BufferedReader(ipsr);	//bufferReader de calcul du nombre de ligne
					
	nbligne=0;
	while(br.readLine()!=null)
		nbligne++;

ips = new FileInputStream(fichier);
ipsr=new InputStreamReader(ips);
br=new BufferedReader(ipsr);
1
jebok Messages postés 358 Date d'inscription lundi 16 mai 2005 Statut Membre Dernière intervention 23 octobre 2007 51
1 juin 2005 à 15:39
Quel est le message d'erreur ?
0
Merci jebok mais j'ai trouvé une autre solution, du coup j'ai plus besoin de mark, reset et tout ça.

A+
0