Método BufferedReader mark() en Java con ejemplos

El método mark() de la clase BufferedReader en Java se usa para marcar la posición actual en el flujo del lector de búfer. El método reset() de la misma clase BufferedReader también se llama posteriormente, después de llamar al método mark(). El método reset() fija la posición en la última posición marcada para que el mismo byte pueda leerse nuevamente.

Sintaxis:

public void mark(int readAheadLimit) 
                   throws IOException

Anula: anula el método mark() de la clase Reader .

Parámetros: este método acepta readAheadLimit de tipo Integer, que representa el límite máximo de bytes que se pueden leer antes de que la posición de la marca se vuelva inválida.

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

Excepciones: este método puede generar dos tipos de excepciones.

  • IllegalArgumentException : esta excepción se lanza si el parámetro pasado readAheadLimit es menor que cero.
  • IOException : esta excepción se produce si se produce un error de E/S.

Los siguientes programas ilustran el método mark() en la clase BufferedReader en el paquete IO.
Programa 1: Suponga la existencia del archivo “c:/demo.txt”.

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

Char : G
Char : E
Char : E
Char : K
Char : K
Char : S

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

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

Char : G
Char : E
Char : E
Char : K
Char : S
Char : S
Char : F
Char : O
Char : R

Referencias:
https://docs.oracle.com/javase/10/docs/api/java/io/BufferedReader.html#mark(int)

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 *