Clase Java InputStream
Clase InputStream de Java
En este tutorial, aprenderemos sobre la clase Java InputStream y sus métodos con la ayuda de un ejemplo.
El InputStream
clase de los java.io
paquete es una superclase abstracta que representa un flujo de entrada de bytes.
Desde InputStream
es una clase abstracta, no es útil por sí misma. Sin embargo, sus subclases se pueden usar para leer datos.
Subclases de InputStream
Para usar la funcionalidad de InputStream
, podemos usar sus subclases. Algunos de ellos son:
- Flujo de entrada de archivo
- ByteArrayInputStream
- Flujo de entrada de objeto
Aprenderemos sobre todas estas subclases en el próximo tutorial.
Crear un flujo de entrada
Para crear un InputStream, debemos importar el java.io.InputStream
paquete primero. Una vez que importamos el paquete, así es como podemos crear el flujo de entrada.
// Creates an InputStream
InputStream object1 = new FileInputStream();
Aquí, hemos creado un flujo de entrada usando FileInputStream
. Es porque InputStream
es una clase abstracta. Por lo tanto, no podemos crear un objeto de InputStream
.
Nota :También podemos crear un flujo de entrada de otras subclases de InputStream
.
Métodos de InputStream
El InputStream
class proporciona diferentes métodos que son implementados por sus subclases. Estos son algunos de los métodos más utilizados:
read()
- lee un byte de datos del flujo de entradaread(byte[] array)
- lee bytes de la secuencia y los almacena en la matriz especificadaavailable()
- devuelve el número de bytes disponibles en el flujo de entradamark()
- marca la posición en el flujo de entrada hasta la que se han leído los datosreset()
- devuelve el control al punto de la transmisión donde se estableció la marcamarkSupported()
- comprueba si elmark()
yreset()
el método es compatible con la secuenciaskips()
- salta y descarta el número especificado de bytes del flujo de entradaclose()
- cierra el flujo de entrada
Ejemplo:InputStream utilizando FileInputStream
Así es como podemos implementar InputStream
usando el FileInputStream
clase.
Supongamos que tenemos un archivo llamado input.txt con el siguiente contenido.
This is a line of text inside the file.
Intentemos leer este archivo usando FileInputStream
(una subclase de InputStream
).
import java.io.FileInputStream;
import java.io.InputStream;
class Main {
public static void main(String args[]) {
byte[] array = new byte[100];
try {
InputStream input = new FileInputStream("input.txt");
System.out.println("Available bytes in the file: " + input.available());
// Read byte from the input stream
input.read(array);
System.out.println("Data read from the file: ");
// Convert byte array into string
String data = new String(array);
System.out.println(data);
// Close the input stream
input.close();
} catch (Exception e) {
e.getStackTrace();
}
}
}
Salida
Available bytes in the file: 39
Data read from the file:
This is a line of text inside the file
En el ejemplo anterior, hemos creado un flujo de entrada usando el FileInputStream
clase. El flujo de entrada está vinculado con el archivo input.txt .
InputStream input = new FileInputStream("input.txt");
Para leer datos de input.txt archivo, hemos implementado estos dos métodos.
input.read(array); // to read data from the input stream
input.close(); // to close the input stream
Para obtener más información, visite Java InputStream (documentación oficial de Java).
Java