Clase Java FileInputStream
Clase Java FileInputStream
En este tutorial, aprenderemos sobre Java FileInputStream y sus métodos con la ayuda de ejemplos.
El FileInputStream
clase de los java.io
El paquete se puede usar para leer datos (en bytes) de archivos.
Extiende el InputStream
clase abstracta.
Antes de aprender sobre FileInputStream
, asegúrese de conocer los archivos Java.
Crear un FileInputStream
Para crear un flujo de entrada de archivos, debemos importar el java.io.FileInputStream
paquete primero. Una vez que importamos el paquete, así es como podemos crear un flujo de entrada de archivos en Java.
FileInputStream input = new FileInputStream(stringPath);
Aquí, hemos creado un flujo de entrada que se vinculará al archivo especificado por la ruta .
FileInputStream input = new FileInputStream(File fileObject);
Aquí, hemos creado un flujo de entrada que se vinculará al archivo especificado por fileObject
.
Métodos de FileInputStream
El FileInputStream
La clase proporciona implementaciones para diferentes métodos presentes en el 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 longitud del archivo y se almacena en la matriz especificada a partir de la posición inicio
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
Data in the file: This is a line of text inside the file.
En el ejemplo anterior, hemos creado un flujo de entrada de archivo llamado input . El flujo de entrada está vinculado con input.txt archivo.
FileInputStream input = new FileInputStream("input.txt");
Para leer datos del archivo, hemos utilizado el read()
dentro del ciclo while.
método disponible()
Para obtener la cantidad 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
Available bytes at the beginning: 39 Available bytes at the end: 36
En el ejemplo anterior,
- Primero usamos el
available()
para comprobar el número de bytes disponibles en el flujo de entrada del archivo. - Entonces hemos usado 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 se redujeron 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
Input Stream after skipping 5 bytes: is a line of text inside the file.
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 "Este " no se lee desde el flujo de entrada.
Método cerrar()
Para cerrar el flujo de entrada del archivo, podemos usar close()
método. Una vez que el close()
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() | garantiza que el close() el método se llama |
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 el 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).
Java