En este tutorial, aprenderemos sobre Java FileInputStream y sus métodos con la ayuda de ejemplos.
La FileInputStream
clase del java.io
paquete se puede utilizar para leer datos (en bytes) de archivos.
Extiende la InputStream
clase 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.FileInputStream
primero 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 FileInputStream
clase proporciona implementaciones para diferentes métodos presentes en la InputStream
clase.
Método read ()
read()
- lee un solo byte del archivoread(byte() array)
- lee los bytes del archivo y los almacena en la matriz especificadaread(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,
- Primero usamos el
available()
método para verificar la cantidad de bytes disponibles en el flujo de entrada del archivo. - Luego, hemos utilizado el
read()
método 3 veces para leer 3 bytes del flujo de entrada del archivo. - 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 FileChannel asociado 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).