El método read() de la clase PushbackInputStream en Java es de dos tipos:
- El método read() de la clase PushbackInputStream en Java se usa para leer el siguiente byte de datos del flujo de entrada. Este método devuelve el byte de lectura del flujo de entrada en forma de número entero.
Sintaxis:
public int read() throws IOException
Anulaciones: este método 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 devuelve el siguiente byte del flujo. Devuelve -1 si la transmisión finaliza.
Excepciones: este método lanza IOException si el flujo de entrada se cierra llamando al método close() de la misma clase o si se produce un error de E/S.
Los siguientes programas ilustran el método read() de la clase PushbackInputStream en el paquete IO:
Programa 1:
// Java program to illustrate
// PushbackInputStream read() method
import
java.io.*;
public
class
GFG {
public
static
void
main(String[] args)
throws
IOException
{
// Create an array
byte
[] byteArray
=
new
byte
[] {
'G'
,
'E'
,
'E'
,
'K'
,
'S'
};
// Create inputStream
InputStream inputStr
=
new
ByteArrayInputStream(byteArray);
// Create object of
// PushbackInputStream
PushbackInputStream pushbackInputStr
=
new
PushbackInputStream(inputStr);
for
(
int
i =
0
; i < byteArray.length; i++) {
System.out.println(
"Char : "
+ (
char
)pushbackInputStr.read());
}
}
}
Producción:Char : G Char : E Char : E Char : K Char : S
Programa 2:
// Java program to illustrate
// PushbackInputStream read() method
import
java.io.*;
public
class
GFG {
public
static
void
main(String[] args)
throws
IOException
{
// Create an array
byte
[] byteArray
=
new
byte
[] {
'G'
,
'E'
,
'E'
,
'K'
,
'S'
,
'F'
,
'O'
,
'R'
,
'G'
,
'E'
,
'E'
,
'K'
,
'S'
};
// Create inputStream
InputStream inputStr
=
new
ByteArrayInputStream(byteArray);
// Create object of
// PushbackInputStream
PushbackInputStream pushbackInputStr
=
new
PushbackInputStream(inputStr);
for
(
int
i =
0
; i < byteArray.length; i++) {
System.out.println(
"Char : "
+ (
char
)pushbackInputStr.read());
}
}
}
Producción:Char : G Char : E Char : E Char : K Char : S Char : F Char : O Char : R Char : G Char : E Char : E Char : K Char : S
- El método read(byte[], int, int) de la clase PushbackInputStream en Java se usa para leer bytes de datos dados del flujo de entrada en una array de bytes. Este método no lee un carácter a la vez, lee varios caracteres a la vez.
Sintaxis:
public int read(byte[] b, int offset, int length) throws IOException
Anulaciones: este método anula el método read() de la clase FilterInputStream .
Parámetros: Este método no acepta tres parámetros:
- b : representa la array de bytes en la que se leen los datos.
- offset : representa el índice de inicio en la array.
- length – Representa el número de bytes a leer.
Valor devuelto: este método devuelve el número total de bytes leídos. Devuelve -1 si la transmisión finaliza.
Excepciones:
- NullPointerException : este método arroja NullPointerException si la array de bytes es nula.
- IndexOutOfBoundsException : este método genera una excepción IndexOutOfBoundsException si el desplazamiento es negativo, la longitud es negativa o la longitud es mayor que la diferencia entre la longitud de la array y el desplazamiento.
- IOException : este método arroja una IOException si el flujo de entrada se cierra llamando al método close() de la misma clase o si se produce un error de E/S.
Los siguientes programas ilustran el método de lectura (byte [], int, int) de la clase PushbackInputStream en el paquete IO:
Programa 1:
// Java program to illustrate
// PushbackInputStream
// read(byte[], int, int) method
import
java.io.*;
public
class
GFG {
public
static
void
main(String[] args)
throws
IOException
{
// Create buffer
byte
[] b =
new
byte
[
1024
];
// Create an array
byte
[] byteArray
=
new
byte
[] {
'G'
,
'E'
,
'E'
,
'K'
,
'S'
};
// Create inputStream
InputStream inputStr
=
new
ByteArrayInputStream(byteArray);
// Create object of
// PushbackInputStream
PushbackInputStream pushbackInputStr
=
new
PushbackInputStream(inputStr);
pushbackInputStr.read(b,
0
,
4
);
for
(
int
i =
0
; i <
4
; i++) {
System.out.print((
char
)b[i]);
}
}
}
Producción:GEEK
Programa 2:
// Java program to illustrate
// PushbackInputStream
// read(byte[], int, int) method
import
java.io.*;
public
class
GFG {
public
static
void
main(String[] args)
throws
IOException
{
// Create buffer
byte
[] b =
new
byte
[
1024
];
// Create an array
byte
[] byteArray
=
new
byte
[] {
'G'
,
'E'
,
'E'
,
'K'
,
'S'
,
'F'
,
'O'
,
'R'
,
'G'
,
'E'
,
'E'
,
'K'
,
'S'
};
// Create inputStream
InputStream inputStr
=
new
ByteArrayInputStream(byteArray);
// Create object of
// PushbackInputStream
PushbackInputStream pushbackInputStr
=
new
PushbackInputStream(inputStr);
pushbackInputStr.read(b,
8
,
5
);
for
(
int
i =
8
; i <
13
; i++) {
System.out.print((
char
)b[i]);
}
}
}
Producción:GEEKS
Referencias:
1. https://docs.oracle.com/javase/10/docs/api/java/io/PushbackInputStream.html#read()
2. https://docs.oracle.com/javase/10/docs /api/java/io/PushbackInputStream.html#read(byte%5B%5D, int, int)