Облегченная реализация java.io.InputStream, поддерживающая mark() и reset()
-
23-08-2019 - |
Вопрос
Хорошего дня,
В настоящее время мы используем ByteArrayInputStream для нашего InputStream с возможностью сброса.Моя проблема с ним заключается в том, что он потребляет много памяти (он загружает все байты, которые он представляет в памяти, в отличие от некоторых других реализаций InputStream).
Тогда мой вопрос заключается в том, существует ли какая-либо более легкая реализация InputStream, которая поддерживает mark() & read ()?
Я также попытался выполнить поиск в commons-io, но ничего не нашел.
Спасибо, Франц
Решение
Будет ли использование BufferedInputStream работать для вас?Не зная, откуда берутся исходные данные (например, почему у вас есть ByteArrayInputStream), для начала немного сложно ответить на ваш вопрос.
Другие советы
Чаще всего я использую PushbackInputStream при анализе данных, и мне приходится возвращаться назад и перечитывать данные.Вот объяснение:
http://tutorials.jenkov.com/java-io/pushbackinputstream.html
Существует также PushbackReader, если вместо этого вам понадобится поток на основе символов.