wejście pliku java z funkcją rewind () / reset ()

Muszę napisać funkcję, która pobiera jakiś rodzaj strumienia wejściowego (np. InputStream lub FileChannel), aby odczytać duży plik w dwóch przebiegach: raz, aby wstępnie obliczyć niektóre pojemności, a drugi, aby wykonać „prawdziwą” pracę. Nie chcę, aby cały plik był ładowany do pamięci od razu (chyba że jest mały).

Czy istnieje odpowiednia klasa Java, która zapewnia taką możliwość? Sam FileInputStream nie obsługuje znacznika () / reset (). Myślę, że BufferedInputStream ma, ale nie jestem pewien, czy musi to zrobić, aby zapisać cały plik.

C jest tak proste, że używasz fseek (), ftell () i rewind (). :-(

questionAnswers(8)

yourAnswerToTheQuestion