Bonjour,

J'ai le probl�me suivant : je souhaite pouvoir lire 2 fois un InputStream
dans son int�gralit�.

J'ai essay� pour ce faire d'utiliser la classe BufferedInputStream, avec les
m�thodes mark et reset.

Voici mon code :
  java.io.BufferedInputStream oBufStream = new
java.io.BufferedInputStream(aStream);

  System.out.println("taille : " + oBufStream.available());
  oBufStream.read();
  oBufStream.mark(1494);
  oBufStream.reset();
  System.out.println("taille : " + oBufStream.available());

/* premiere lecture de mon InputStream */
  mIdentifiantsMessage.read(oBufStream);

/* remise jusqu'� la marque de mon stream */
  oBufStream.reset();

/* deuxieme lecture */
  mObjetsMessage.read(oBufStream);

Le r�sultat de ce code affiche :
taille : 1493
taille 1492.

C'est � dire que je perd le premier caract�re de mon flux pour pouvoir le
marquer. Du coup, derri�re, mon traitement plante.
Si je ne mets pas de read() sur mon flux, alors apr�s la premi�re lecture,
le flux est ferm�, et je ne peux plus le re-lire.

Quelqu'un aurait il une id�e pour pouvoir lire le m�me flux dans son
int�gralit� 2 fois ?

Merci d'avance,

Fabien.

Répondre à