Clase Java.io.BufferedInputStream en Java

Un BufferedInputStream agrega funcionalidad a otro flujo de entrada, a saber, la capacidad de almacenar en búfer la entrada y admitir los métodos de marcar y restablecer. Cuando se crea BufferedInputStream, se crea una array de búfer interna. A medida que se leen u omiten bytes del flujo, el búfer interno se rellena según sea necesario desde el flujo de entrada contenido, muchos bytes a la vez.

Constructor y Descripción

  • BufferedInputStream(InputStream in) : crea un BufferedInputStream y guarda su argumento, el flujo de entrada, para su uso posterior.
  • BufferedInputStream(InputStream in, int size) : crea un BufferedInputStream con el tamaño de búfer especificado y guarda su argumento, el flujo de entrada, para su uso posterior.

Métodos:

  • int available() : Devuelve una estimación de la cantidad de bytes que
    se pueden leer (u omitir) de este flujo de entrada sin
    bloquearse con la próxima invocación de un método para este flujo de entrada.
    Syntax:public int available()
                  throws IOException
    Returns:
    an estimate of the number of bytes that can be 
    read (or skipped over) from this input stream without blocking.
    Throws:
    IOException
    
  • void close() : Cierra este flujo de entrada y libera cualquier recurso del sistema asociado con el flujo.
    Syntax:public void close()
               throws IOException
    Overrides:
    close in class FilterInputStream
    Throws:
    IOException 
    
  • void mark(int readlimit) : Marca la posición actual en este flujo de entrada.
    Syntax:public void mark(int readlimit)
    Overrides:
    mark in class FilterInputStream
    Parameters:
    readlimit - the maximum limit of bytes that can be read 
    before the mark position becomes invalid.
    
  • boolean markSupported() : comprueba si este flujo de entrada es compatible con los métodos de marcar y restablecer.
    Syntax:public boolean markSupported()
    Overrides:
    markSupported in class FilterInputStream
    Returns:
    a boolean indicating if this stream type supports the mark and reset methods.
    
  • int read() : lee el siguiente byte de datos del flujo de entrada.
    Syntax:public int read()
             throws IOException
    Returns:
    the next byte of data, or -1 if the end of the stream is reached.
    Throws:
    IOException 
    
  • int read(byte[] b, int off, int len) : Lee bytes de este flujo de entrada de bytes en la array de bytes especificada, comenzando en el desplazamiento dado.
    Syntax:public int read(byte[] b,
           int off,
           int len)
             throws IOException
    Parameters:
    b - destination buffer.
    off - offset at which to start storing bytes.
    len - maximum number of bytes to read.
    Returns:
    the number of bytes read, or -1 if the end of the stream has been reached.
    Throws:
    IOException 
    
  • void reset() : Reposiciona este flujo a la posición en el momento en que se llamó por última vez al método de marca en este flujo de entrada.
    Syntax:public void reset()
               throws IOException
    Overrides:
    reset in class FilterInputStream
    Throws:
    IOException
    
  • salto largo (n largo): salta y descarta n bytes de datos de este flujo de entrada
    Syntax:public long skip(long n)
              throws IOException
    Parameters:
    n - the number of bytes to be skipped.
    Returns:
    the actual number of bytes skipped.
    Throws:
    IOException

Programa:

// Java program to demonstrate working of BufferedInputStream
import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.IOException;
  
// Java program to demonstrate BufferedInputStream methods
class BufferedInputStreamDemo
{
    public static void main(String args[]) throws IOException
    {
        // attach the file to FileInputStream
        FileInputStream fin = new FileInputStream("file1.txt");
  
        BufferedInputStream bin = new BufferedInputStream(fin);
  
        // illustrating available method
        System.out.println("Number of remaining bytes:" +
                                            bin.available());
  
        // illustrating markSupported() and mark() method
        boolean b=bin.markSupported();
        if (b)
            bin.mark(bin.available());
  
        // illustrating skip method
        /*Original File content:
        * This is my first line
        * This is my second line*/
        bin.skip(4);
        System.out.println("FileContents :");
  
        // read characters from FileInputStream and
        // write them
        int ch;
        while ((ch=bin.read()) != -1)
            System.out.print((char)ch);
  
        // illustrating reset() method
        bin.reset();
        while ((ch=bin.read()) != -1)
            System.out.print((char)ch);
  
        // close the file
        fin.close();
    }
}

Producción:

Number of remaining bytes:47
FileContents :
 is my first line
This is my second line
This is my first line
This is my second line


Artículo siguiente:
Clase Java.io.BufferedOutputStream en Java

Este artículo es una contribución de Nishant Sharma . Si le gusta GeeksforGeeks y le gustaría contribuir, también puede escribir un artículo usando contribuya.geeksforgeeks.org o envíe su artículo por correo a contribuya@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.

Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 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 *