Javaのドキュメントによると、Class InputStreamサーバーのmarkメソッドのreadlimitパラメータに「マーク位置が無効になるまでに読み取れる最大バイト数」を設定するようです。. 内容が「hello」のsample.txtという名前のファイルがあります。そして、私はこのコードを書きました:
import java.io.*;
public class InputStream{
public static void main (String[] args) throws IOException {
InputStream reader = new FileInputStream("sample.txt");
BufferedInputStream bis = new BufferedInputStream(reader);
bis.mark(1);
bis.read();
bis.read();
bis.read();
bis.read();
bis.reset();
System.out.println((char)bis.read());
}
}
出力は「h」です。しかし、markメソッドの後に複数のバイトを読み取った場合、無効なリセットメソッド呼び出しのエラーが発生するのではないでしょうか?