Ввод Java-файла с возможностью перемотки () / сброса ()

Мне нужно написать функцию, которая принимает что-то вроде входного потока (например, InputStream или FileChannel), чтобы читать большой файл за два прохода: один - для предварительного вычисления некоторых мощностей, а второй - для «реального». Работа. Я не хочу, чтобы весь файл загружался в память одновременно (если только он не маленький).

Is there an appropriate Java class that provides this capability? Сам FileInputStream не поддерживает mark () / reset (). Я думаю, что BufferedInputStream делает, но мне не ясно, нужно ли для этого хранить весь файл.

C настолько прост, что вы просто используете fseek (), ftell () и rewind (). :-(

Ответы на вопрос(9)

Ваш ответ на вопрос