Вы не можете обязательно прочитать InputStream более одного раза.Некоторые реализации поддерживают это, некоторые нет.Что вы делаете, это проверяете метод markSupported, который действительно является индикатором, если вы можете прочитать один и тот же поток дважды, но тогда вы игнорируете результат.Вы должны вызвать этот метод, чтобы увидеть, можете ли вы прочитать поток дважды, а если не можете, принять другие меры.
Редактировать (в ответ на комментарий): Когда я писал свой ответ, мой "другой"договоренности "должен был получить свежий InputStream.Однако когда я читаю в ваших комментариях к вашему вопросу о том, что вы хотите сделать, я не уверен, что это возможно.Для основ операции вы, вероятно, захотите RandomAccessFile (по крайней мере, это будет мое первое предположение, и если это сработает, это будет проще всего) - однако у вас будут проблемы с доступом к файлам.У вас есть приложение, активно пишущее в файл, и другое чтение этого файла, у вас будут проблемы - какие именно проблемы будут зависеть от ОС, поэтому любое решение потребует дополнительного тестирования.Я предлагаю отдельный вопрос о SO, который затрагивает этот вопрос, и кто-то, кто попробовал это, может дать вам больше понимания.