- El método read() de la clase BufferedInputStream en Java se usa para leer el siguiente byte de datos del flujo de entrada. Cuando se llama a este método read() en el flujo de entrada, este método read() lee un carácter del flujo de entrada a la vez.
Sintaxis:
public int read()
Anula:
anula el método read() de la clase 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 el flujo de entrada se ha cerrado al invocar su método close() o si se produce un error de E/S.
El siguiente programa ilustra el método read() en la clase BufferedInputStream en el paquete IO:
Programa: Suponga la existencia del archivo “c:/demo.txt”.
// Java program to illustrate
// BufferedInputStream read() method
import
java.io.*;
public
class
GFG {
public
static
void
main(String[] args)
throws
Exception
{
// 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 until a single byte is available
while
(buffInputStr.available() >
0
) {
// Read the byte and
// convert the integer to character
char
c = (
char
)buffInputStr.read();
// Print the characters
System.out.println(
"Char : "
+ c);
}
}
}
- El método read(byte[ ] b, int off, int len) de la clase BufferedInputStream en Java se usa para leer bytes del flujo de entrada de bytes en la array de bytes especificada que comienza en el desplazamiento proporcionado por el usuario. Básicamente se usa para comenzar a leer después de conservar los caracteres en una array.
Implementación:
- En la implementación de este método, el método read() se llama una y otra vez. Al llamar a este método si se encuentra una IOException, devuelve la excepción de la llamada al método read(byte[ ] b, int off, int len).
- Si se encuentra más IOException, detecta la excepción y se supone que el archivo de entrada finaliza.
- Los bytes que se leen hasta ese punto se almacenan en la array de bytes b y se devuelve el número de bytes leídos antes de que ocurra la excepción.
Sintaxis:
public int read(byte[] b, int off, int len)
Anula:
anula el método read() de la clase FilterInputStream .Parámetros: Este método acepta tres parámetros.
- b – Representa el búfer de destino.
- off : representa el desplazamiento en el que se iniciaría el almacenamiento de bytes.
- len – Representa el número máximo de bytes a leer.
Valor devuelto : este método no devuelve ningún valor.
Excepción: este método lanza IOException si el flujo de entrada se ha cerrado al invocar su método close() o si se produce un error de E/S.
El siguiente programa ilustra el método de lectura (byte, int, int) en la clase BufferedInputStream en el paquete IO:
Programa: Suponga la existencia del archivo “c:/demo.txt”.
// Java program to illustrate
// BufferedInputStream
// read(byte int int) 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 number of bytes available
int
rem_byte = buffInputStr.available();
// Byte array is declared
byte
[] barr =
new
byte
[rem_byte];
// Read byte into barr,
// starts at offset 1,
// 5 bytes to read
buffInputStr.read(barr,
1
,
5
);
// For each byte in barr
for
(
byte
b : barr) {
if
(b == (
byte
)
0
)
b = (
byte
)
'-'
;
System.out.print((
char
)b);
}
}
}
Referencias:
1. https://docs.oracle.com/javase/10/docs/api/java/io/BufferedInputStream.html#read()
2. https://docs.oracle.com/javase/10/docs /api/java/io/BufferedInputStream.html#read(byte%5B%5D, int, int)