InputStream de Java (con ejemplo)

En este tutorial, aprenderemos sobre la clase Java InputStream y sus métodos con la ayuda de un ejemplo.

La InputStreamclase del java.iopaquete es una superclase abstracta que representa un flujo de entrada de bytes.

Dado que InputStreames una clase abstracta, no es útil por sí misma. Sin embargo, sus subclases se pueden utilizar para leer datos.

Subclases de InputStream

Para usar la funcionalidad de InputStream, podemos usar sus subclases. Algunos de ellos son:

  • FileInputStream
  • ByteArrayInputStream
  • ObjectInputStream

Aprenderemos sobre todas estas subclases en el próximo tutorial.

Crear un InputStream

Para crear un InputStream, java.io.InputStreamprimero debemos importar el paquete. 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 InputStreames una clase abstracta. Por tanto, no podemos crear un objeto de InputStream.

Nota : También podemos crear un flujo de entrada a partir de otras subclases de InputStream.

Métodos de InputStream

La InputStreamclase 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 entrada
  • read(byte() array) - lee bytes de la secuencia y los almacena en la matriz especificada
  • available() - devuelve el número de bytes disponibles en el flujo de entrada
  • mark() - marca la posición en el flujo de entrada hasta la cual se han leído los datos
  • reset() - devuelve el control al punto de la secuencia donde se estableció la marca
  • markSupported()- comprueba si el método mark()y reset()es compatible con la secuencia
  • skips() - omite y descarta el número especificado de bytes del flujo de entrada
  • close() - cierra el flujo de entrada

Ejemplo: InputStream con FileInputStream

Así es como podemos implementar InputStreamusando la FileInputStreamclase.

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; public 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: 35 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 la FileInputStreamclase. El flujo de entrada está vinculado con el archivo input.txt .

 InputStream input = new FileInputStream("input.txt"); 

Para leer datos del archivo input.txt , 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).

Articulos interesantes...