Метод mark() в BufferedInputStream работает так, что отмечает текущую позицию во входном потоке. 13
Последующий вызов метода reset() фиксирует положение потока на последней отмеченной позиции, чтобы при следующем чтении можно было снова прочитать те же байты. 13
Аргумент readlimit указывает входному потоку, сколько байтов можно прочитать, прежде чем позиция метки станет недействительной. 1
Если метод markSupported() возвращает true, поток запоминает все байты, прочитанные после вызова mark(), и готов снова предоставить те же байты при вызове метода reset(). 1 Однако если до вызова reset() из потока прочитано больше чем readlimit байтов, то потоку не требуется сохранять какие-либо данные. 1