BufferedInputStreams не являются магией.Они будут поддерживать маркировку только для своих основных буферов, и эти буферы будут занимать память.Поэтому, если вы идете по этому пути, важно, чтобы вы понимали вариант использования и потенциально вызывали конструктор BufferedInputStream с буфером соответствующего размера.Если базовый файл начинает увеличиваться в размерах и вы отмечаете достаточно далеко назад, этот метод может не сработать.