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