title: InputStreamReader.markSupported is false
body: <p>I need to “un-read” characters from an <code>InputStreamReader</code>. For that purpose I wanted to use <code>mark</code> and <code>reset</code> but <code>markSupported</code> returns <code>false</code> for the <code>InputStreamReader</code> class, since it doesn’t maintain an internal buffer and/or queue of characters.</p>
  
  <p>I know about <a href="https://stackoverflow.com/questions/777391"><code>BufferedInputStream</code> and <code>PushbackInputStream</code></a> but neither is appropriate here since they buffer on byte basis, while <strong>I need characters</strong>.</p>
  
  <p>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 <em>a single</em> character (for lookahead purposes). Do I really need to maintain my own lookahead?</p>