Java - Réinitialisation De InputStream

Je suis à traiter avec un code Java dans lequel il y a un InputStream que je l'ai lu en une fois, et puis j'ai besoin de le lire encore une fois de la même méthode.

Le problème est que j'ai besoin de réinitialiser la position de départ pour le lire deux fois.

J'ai trouvé un hack-ish solution au problème:

is.mark(Integer.MAX_VALUE);

//Read the InputStream is fully
//{ ... }

try
{
    is.reset();
}
catch (IOException e)
{
    e.printStackTrace();
}

Cette solution conduit à certaines unespected comportements? Ou il va travailler dans son mutisme?

Il peut échouer dans les situations que la lecture de code mark().
Vous pouvez être en mesure d'étendre InputStream, remplacer la marque de la méthode, de sorte qu'il ne peut être appelé qu'une seule fois dans une instance.

OriginalL'auteur iMineLink | 2013-09-13