java fichier d'entrée avec rewind()/reset() capacité de

J'ai besoin d'écrire une fonction qui prend en entrée de flux de chose (par exemple, un InputStream ou un FileChannel), afin de lire un gros fichier en deux fois: une fois pour précalculer certaines capacités, et la seconde à faire de la "vrai" travail. Je ne veux pas la totalité du fichier chargé en mémoire à la fois (sauf si elle est petite).

Est-il approprié de la classe Java qui fournit cette fonctionnalité? FileInputStream lui-même ne supporte pas la marque()/reset(). BufferedInputStream n'a, je pense, mais je ne suis pas clair si elle a pour stocker le fichier entier pour ce faire.

C est si simple, il vous suffit d'utiliser fseek(), ftell(), et rewind(). 🙁

  • Jason, veuillez onu-accepter ma réponse et de prendre celui-ci. C'est bon, car il fournit une mise en œuvre efficace de la norme marquables InputStream API; les consommateurs de InputStream pouvez l'utiliser sans avoir à charger le fichier en entier.
InformationsquelleAutor Jason S | 2009-07-07