Método BufferedInputStream mark() en Java con ejemplos

El método mark() de la clase BufferedInputStream en Java se usa para marcar la posición actual en el flujo de entrada. El método Reset() de la misma clase BufferedInputStream se llama después del método mark(). Reset() fija la posición en la última posición marcada para que el mismo byte se pueda leer nuevamente.

Contrato general: el flujo de entrada de alguna manera guarda todos los bytes que se leyeron después de que se llamó al método mark() y devuelve los mismos bytes nuevamente cuando se llama al método reset(). Esta operación se realiza solo si markSupported() devuelve verdadero. Sin embargo, si los bytes que se leen antes de la llamada del método reset() son más que bytes de límite de lectura, entonces el flujo de entrada no requiere guardar ningún dato.

Sintaxis:

public void mark(int readlimit)

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

Parámetros: este método acepta un parámetro de límite de lectura 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.

Excepción: este método no arroja ninguna excepción.

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

// Java program to illustrate
// BufferedInputStream mark() 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());
  
        // Reset() is invoked
        buffInputStr.reset();
  
        // Read and print characters
        System.out.println(
            "Char : "
            + (char)buffInputStr.read());
        System.out.println(
            "Char : "
            + (char)buffInputStr.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
// BufferedInputStream.mark() 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());
  
        // 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());
    }
}
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/BufferedInputStream.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 *