Según Java documentation, el parámetroreadlimit del método de marca en el servidor de la clase InputStream para el conjunto "el límite máximo de bytes que puede ser leído antes de que la posición de la marca no es válida.". Tengo un archivo llamado sample.txt cuyo contenido es "hola". Y escribí este código:Java: InputStream marca de límite
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());
}
}
La salida es "h". Pero si después del marca el método leer más de un octeto, ¿no debería obtener un error para el restablecer la llamada al método cero?
¿Conoces alguna implementación de InputStream para reproducir el escenario en el que si leo más bytes que los establecidos con mark() se lanzará una excepción? –