Dominando Java FileInputStream: Guía Práctica con Ejemplos de Código
Clase FileInputStream de Java
Este tutorial te guía a través de FileInputStream de Java, cubriendo sus métodos principales, uso práctico y ejemplos del mundo real.
La clase FileInputStream, parte del paquete java.io, te permite leer datos de bytes sin procesar desde archivos. Extiende la clase abstracta InputStream, proporcionando una implementación concreta para I/O de archivos.
Crear un FileInputStream
Importa la clase e instánciala ya sea con una ruta de archivo o un objeto File.
1. Usando una ruta de archivo
FileInputStream entrada = new FileInputStream("ruta/al/archivo.txt");
Esto abre un flujo vinculado al archivo en la ruta especificada.
2. Usando un objeto File
File archivo = new File("archivo.txt");
FileInputStream entrada = new FileInputStream(archivo);
Métodos Principales de FileInputStream
La clase implementa todos los métodos abstractos de InputStream y añade algunos propios. A continuación se muestran los más utilizados.
read()
int read()– lee un solo byte y lo retorna comoint(o-1en EOF).int read(byte[] b)– llena el array proporcionado con bytes.int read(byte[] b, int off, int len)– lee hastalenbytes enbcomenzando en el offsetoff.
Ejemplo: leyendo un archivo de texto byte a byte.
import java.io.FileInputStream;
public class Main {
public static void main(String[] args) {
try (FileInputStream entrada = new FileInputStream("input.txt")) {
System.out.println("Datos en el archivo:");
int byteLeido;
while ((byteLeido = entrada.read()) != -1) {
System.out.print((char) byteLeido);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
Salida
Datos en el archivo: Esta es una línea de texto dentro del archivo.
available()
Retorna el número de bytes que se pueden leer sin bloqueo.
try (FileInputStream entrada = new FileInputStream("input.txt")) {
System.out.println("Disponibles al inicio: " + entrada.available());
entrada.read();
entrada.read();
entrada.read();
System.out.println("Disponibles después de 3 lecturas: " + entrada.available());
}
Salida
Disponibles al inicio: 39 Disponibles después de 3 lecturas: 36
skip()
Avanza el flujo por un número especificado de bytes, descartándolos.
try (FileInputStream entrada = new FileInputStream("input.txt")) {
entrada.skip(5); // saltar "Esta "
int byteLeido;
while ((byteLeido = entrada.read()) != -1) {
System.out.print((char) byteLeido);
}
}
Salida
es una línea de texto dentro del archivo.
close()
Cierra el flujo y libera recursos del sistema. Usar un bloque try-with-resources (como se muestra arriba) asegura que close() se llame automáticamente.
Métodos Adicionales de FileInputStream
| Método | Descripción |
|---|---|
finalize() | Asegura que close() se invoque antes de la recolección de basura. |
getChannel() | Retorna el FileChannel asociado con el flujo. |
getFD() | Proporciona el descriptor de archivo subyacente. |
mark(int readlimit) | Marca la posición actual para restablecerla después. |
reset() | Restablece el flujo a la última posición marcada. |
Para más detalles, consulta la documentación oficial de Java: Java FileInputStream (documentación oficial).
Java
- Palabra clave final en Java: Variables, métodos y clases
- Operador instanceof en Java: Guía completa
- Entendiendo las clases anidadas estáticas en Java: Uso, diferencias y ejemplos
- Dominando las clases internas anónimas en Java: Definición, sintaxis y ejemplos prácticos
- Patrón Singleton en Java explicado: Cómo implementarlo y usarlo de forma segura
- Dominando la Reflexión en Java: Inspeccionando clases, métodos y campos en tiempo de ejecución
- Dominando ObjectOutputStream de Java: Serialización, Métodos y Ejemplos Prácticos
- Dominando Java BufferedReader: Manejo Eficiente de Flujos de Caracteres
- Dominando Java Scanner: Guía Completa con Ejemplos Prácticos
- Dominando Java Generics: Construyendo Código Reutilizable y Type-Safe
- Dominando las operaciones de archivos en Java con java.io: creación, lectura, escritura y eliminación