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
Вы можете обернуть входной поток, используя BufferedReader
Reader markedReader = new BufferedReader(inputStreamReader) ;
Буферный читатель поддерживает метку и читает символы.