InputStreamReader.markSupported is false
I need to “un-read” characters from an InputStreamReader
. For that purpose I wanted to use mark
and reset
but markSupported
returns false
for the InputStreamReader
class, since it doesn’t maintain an internal buffer and/or queue of characters.
I know about B开发者_运维问答ufferedInputStream
and PushbackInputStream
but neither is appropriate here since they buffer on byte basis, while I need characters.
Does Java offer a buffered character reader which can un-read characters? Actually, let me constrain that further, I only ever need to un-read a single character (for lookahead purposes). Do I really need to maintain my own lookahead?
The two byte-stream based classes java.io.BufferedInputStream
and java.io.PushbackInputStream
have their character-stream based counterparts in the same package:
java.io.PushbackReader
java.io.BufferedReader
Have you tried java.io.BufferedReader?
You could wrap the input stream using a BufferedReader
Reader markedReader = new BufferedReader(inputStreamReader) ;
The buffered reader does support mark and reads characters.
精彩评论