2009-02-16 18 views
2

Bonjour,légère mise en œuvre de java.io.InputStream qui prend en charge la marque() et reset()

Actuellement, nous utilisons ByteArrayInputStream pour notre InputStream reset-mesure. Mon problème est qu'il consomme beaucoup de mémoire (il charge tous les octets qu'il représente en mémoire contrairement à d'autres implémentations InputStream).

Ma question est alors, y at-il une implémentation plus légère d'InputStream qui supporte mark() & read()?

J'ai aussi essayé de chercher dans les commons-io, mais je ne vois rien.

Merci, Franz

Répondre

5

Plût au moyen d'un travail de BufferedInputStream pour vous? Sans savoir d'où proviennent les données d'origine (par exemple, pourquoi avez-vous un ByteArrayInputStream) pour commencer, il est un peu difficile de répondre à votre question.

+0

Merci ... BufferInputStream fonctionne. Je suppose que mon problème était que j'essayais de tamponner ServletInputStream ce que je ne peux pas car #available() retourne toujours 0 (et BufferInputStream s'en remet). –

5

J'utilise le plus souvent un PushbackInputStream lors de l'analyse de données et j'ai besoin de revenir en arrière et de relire les données. Voici une explication:

http://tutorials.jenkov.com/java-io/pushbackinputstream.html

Il y a aussi un PushbackReader si vous avez besoin d'un flux à base de caractère au lieu.