0

メカニズムのマークとリセットがどのように機能するかを完全に理解しています。ただし、ここから取得した次のコードが、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());
4

1 に答える 1