BufferedInputStream reset() método en Java con ejemplos

El método reset() de la clase BufferedInputStream en Java se utiliza para restablecer la posición del flujo a la posición en el momento en que se llamó por última vez al método mark. Se usa con la combinación del método mark() de la misma clase.

Contrato General:
Hay dos casos:

  1. Si se admiten mark() y reset(), es decir, si markSupported devuelve verdadero,
    • Se puede lanzar una IOException si no se llama a mark() desde la creación del flujo de entrada o los bytes que se leen desde el flujo de entrada desde la última llamada del método mark() es mayor que el argumento para marcar el método en el último llamar.
    • En caso de que no se lance una IOException, el flujo de entrada se restablece a un estado tal que todos los bytes que se leen después de la llamada más reciente de mark() se proporcionan nuevamente a las personas que llaman subsiguientemente a read(). Esto es seguido por los bytes que tendrían en la llamada reset().
  2. Si mark() y reset() no son compatibles, es decir, si markSupported devuelve falso,
    • Llamar al método reset() podría arrojar una IOException.
    • En caso de que no se produzca una IOException, el flujo de entrada se restablece a un estado fijo que depende del tipo particular del flujo de entrada. Los bytes proporcionados a los llamadores posteriores de read() dependen del tipo particular del flujo de entrada.

Sintaxis:

public void reset()

Anulaciones: el método anula la clase de reinicio en FilterInputStream.

Parámetros: Este método no acepta ningún parámetro.

Valor devuelto : este método no devuelve ningún valor.

Excepción: este método lanza IOException si esta secuencia no se ha marcado o la marca se ha invalidado o la secuencia de entrada se ha cerrado mediante la invocación del método close() o si se produce un error de E/S.

Los siguientes programas ilustran el método reset() en la clase BufferedInputStream en el paquete IO:

Programa 1: Suponga la existencia del archivo “c:/demo.txt”.

// Java program to illustrate
// BufferedInputStream reset() method
import java.io.*;
public class GFG {
    public static void main(String[] args)
    {
  
        // Create input stream 'demo.txt'
        // for reading containing text "GEEKS"
        FileInputStream inputStream
            = new FileInputStream(
                "c:/demo.txt");
  
        // Convert inputStream to
        // bufferedInputStream
        BufferedInputStream buffInputStr
            = new BufferedInputStream(
                inputStream);
  
        // Read and print characters one by one
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
  
        // Mark is set on the input stream
        buffInputStr.mark(0);
  
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
  
        System.out.println(
            "reset() called");
  
        // Reset() is invoked
        buffInputStr.reset();
  
        // Read and print characters
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
    }
}
Aporte:
Producción:

Programa 2: Suponga la existencia del archivo “c:/demo.txt”.

// Java program to illustrate
// BufferedInputStream reset() method
import java.io.*;
public class GFG {
    public static void main(String[] args)
    {
  
        // Create input stream 'demo.txt'
        // for reading containing text
        // "GEEKSFORGEEKS"
        FileInputStream inputStream
            = new FileInputStream(
                "c:/demo.txt");
  
        // Convert inputStream to
        // bufferedInputStream
        BufferedInputStream buffInputStr
            = new BufferedInputStream(
                inputStream);
  
        // Read and print characters one by one
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
  
        // Mark is set on the input stream
        buffInputStr.mark(0);
  
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
  
        System.out.println(
            "reset() called");
  
        // Reset() is invoked
        buffInputStr.reset();
  
        // Read and print characters
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
    }
}
Aporte:
Producción:

Referencias:
https://docs.oracle.com/javase/10/docs/api/java/io/BufferedInputStream.html#reset()

Publicación traducida automáticamente

Artículo escrito por pp_pankaj y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *