メカニズムのマークとリセットがどのように機能するかを完全に理解しています。ただし、ここから取得した次のコードが、br.mark(26) を br.mark(0) に置き換えても機能する理由を知りたいです。パラメータは、マークの前に読み取られる char の数値であるためです。引数として 0 を指定すると、何も読み取られません。代わりに、何も変更していないかのように機能します。なぜそのように振る舞うのですか?
br = new BufferedReader(isr);
// reads and prints BufferedReader
System.out.println((char)br.read());
System.out.println((char)br.read());
System.out.println((char)br.read());
// mark invoked at this position
br.mark(0);
System.out.println("mark() invoked");
System.out.println((char)br.read());
System.out.println((char)br.read());
System.err.println("The Thing to be said:"+(char)br.read());
// reset() repositioned the stream to the mark
br.reset();
System.out.println("reset() invoked");
System.out.println((char)br.read());
System.out.println((char)br.read());
System.out.println((char)br.read());