InputStreamReader.markSupported имеет значение false

Мне нужно "не читать" символы из InputStreamReader, Для этого я хотел использовать mark а также reset но markSupported возвращается false для InputStreamReader класс, поскольку он не поддерживает внутренний буфер и / или очередь символов.

Я знаю о BufferedInputStream а такжеPushbackInputStream но ни один не подходит здесь, так как они буферизуются на байтовой основе, а мне нужны символы.

Предлагает ли Java средство чтения символов с буферизацией, которое может читать символы? На самом деле, позвольте мне ограничить это далее, мне когда-либо нужно только не читать один символ (для целей прогнозирования). Мне действительно нужно поддерживать свою собственную предвкушение?

3 ответа

Решение

Два байтовых потока на основе классов java.io.BufferedInputStream а также java.io.PushbackInputStream их аналоги на основе символьного потока находятся в одном пакете:

java.io.PushbackReader
java.io.BufferedReader

Вы пробовали java.io.BufferedReader?

Вы можете обернуть входной поток, используя BufferedReader

Reader markedReader = new BufferedReader(inputStreamReader) ;

Буферный читатель поддерживает метку и читает символы.

Другие вопросы по тегам