Java FileInputStream (con ejemplos)

En este tutorial, aprenderemos sobre Java FileInputStream y sus métodos con la ayuda de ejemplos.

La FileInputStreamclase del java.iopaquete se puede utilizar para leer datos (en bytes) de archivos.

Extiende la InputStreamclase abstracta.

Antes de aprender FileInputStream, asegúrese de conocer los archivos Java.

Crear un FileInputStream

Para crear un flujo de entrada de archivo, java.io.FileInputStreamprimero debemos importar el paquete. Una vez que importamos el paquete, así es como podemos crear un flujo de entrada de archivo en Java.

1. Usando la ruta al archivo

 FileInputStream input = new FileInputStream(stringPath); 

Aquí, hemos creado una secuencia de entrada que se vinculará al archivo especificado por la ruta.

2. Usando un objeto del archivo

 FileInputStream input = new FileInputStream(File fileObject); 

Aquí, hemos creado una secuencia de entrada que se vinculará al archivo especificado por fileObject.

Métodos de FileInputStream

La FileInputStreamclase proporciona implementaciones para diferentes métodos presentes en la InputStreamclase.

Método read ()

  • read() - lee un solo byte del archivo
  • read(byte() array) - lee los bytes del archivo y los almacena en la matriz especificada
  • read(byte() array, int start, int length) - lee el número de bytes igual a la longitud del archivo y lo almacena en la matriz especificada comenzando desde el inicio de la posición

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.

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( FileInputStream input = new FileInputStream("input.txt"); System.out.println("Data in the file: "); // Reads the first byte int i = input.read(); while(i != -1) ( System.out.print((char)i); // Reads next byte from the file i = input.read(); ) input.close(); ) catch(Exception e) ( e.getStackTrace(); ) ) ) 

Salida

 Datos en el archivo: esta es una línea de texto dentro del archivo. 

En el ejemplo anterior, hemos creado un flujo de entrada de archivo llamado input. La secuencia de entrada está vinculada con el archivo input.txt .

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

Para leer datos del archivo, hemos utilizado el read()método dentro del ciclo while.

disponible () Método

Para obtener el número de bytes disponibles, podemos usar el available()método. Por ejemplo,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Returns the number of available bytes System.out.println("Available bytes at the beginning: " + input.available()); // Reads 3 bytes from the file input.read(); input.read(); input.read(); // Returns the number of available bytes System.out.println("Available bytes at the end: " + input.available()); input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Salida

 Bytes disponibles al principio: 39 Bytes disponibles al final: 36 

En el ejemplo anterior,

  1. Primero usamos el available()método para verificar la cantidad de bytes disponibles en el flujo de entrada del archivo.
  2. Luego, hemos utilizado el read()método 3 veces para leer 3 bytes del flujo de entrada del archivo.
  3. Ahora, después de leer los bytes, nuevamente hemos verificado los bytes disponibles. Esta vez los bytes disponibles disminuyeron en 3.

Método skip ()

Para descartar y omitir el número especificado de bytes, podemos usar el skip()método. Por ejemplo,

 import java.io.FileInputStream; public class Main ( public static void main(String args()) ( try ( // Suppose, the input.txt file contains the following text // This is a line of text inside the file. FileInputStream input = new FileInputStream("input.txt"); // Skips the 5 bytes input.skip(5); System.out.println("Input stream after skipping 5 bytes:"); // Reads the first byte int i = input.read(); while (i != -1) ( System.out.print((char) i); // Reads next byte from the file i = input.read(); ) // close() method input.close(); ) catch (Exception e) ( e.getStackTrace(); ) ) ) 

Salida

 Flujo de entrada después de omitir 5 bytes: es una línea de texto dentro del archivo. 

En el ejemplo anterior, hemos utilizado el skip()método para omitir 5 bytes de datos del flujo de entrada del archivo. Por lo tanto, los bytes que representan el texto "Esto" no se leen del flujo de entrada.

Método close ()

Para cerrar el flujo de entrada del archivo, podemos usar el close()método. Una vez close()que se llama al método, no podemos usar el flujo de entrada para leer datos.

En todos los ejemplos anteriores, hemos utilizado el close()método para cerrar el flujo de entrada del archivo.

Otros métodos de FileInputStream

Métodos Descripciones
finalize() asegura que el close()método sea llamado
getChannel() devuelve el objeto de FileChannelasociado con el flujo de entrada
getFD() devuelve el descriptor de archivo asociado con el flujo de entrada
mark() marcar la posición en el flujo de entrada hasta la cual se han leído los datos
reset() devuelve el control al punto en el flujo de entrada donde se estableció la marca

Para obtener más información, visite Java FileInputStream (documentación oficial de Java).

Articulos interesantes...