En el mundo de la programación, los ficheros son fundamentales para almacenar y gestionar datos de manera persistente. En este artículo exploraremos qué son los ficheros, los tipos más comunes, sus extensiones y las operaciones básicas que se pueden realizar con ellos usando Java.
¿Qué es un Fichero?
Un fichero es una estructura de datos que almacena información en un formato específico en un dispositivo de almacenamiento no volátil, como un disco duro o una memoria USB. Cada fichero tiene un nombre y una extensión que define su tipo y propósito. Además, se encuentra dentro de un directorio (o carpeta) en el sistema operativo.
Tipos de Acceso a Ficheros
Existen dos maneras principales de acceder a la información contenida en un fichero:
- Acceso Secuencial: La lectura o escritura de datos ocurre de forma ordenada, desde el inicio hasta el final.
- Acceso Directo o Aleatorio: Permite leer o escribir datos en posiciones específicas del fichero usando un puntero (por ejemplo, la clase
RandomAccessFile
en Java).
Tipos de Ficheros y Sus Extensiones
En Java, los ficheros se clasifican principalmente en dos tipos:
1. Ficheros de Texto
Son ficheros que contienen únicamente caracteres legibles (como ASCII o UTF-8). Son ideales para almacenar configuraciones, datos estructurados o información interpretable por humanos. Ejemplos de extensiones:
.txt
: Texto plano..xml
: Documentos XML estructurados..json
: Ficheros de intercambio de información..props
: Ficheros de propiedades..sql
: Scripts SQL.
2. Ficheros Binarios
Almacenan datos en formato binario, no directamente legibles por humanos. Este tipo es más compacto y eficiente para manejar datos complejos. Ejemplos de extensiones:
.pdf
: Documentos PDF..jpg
: Imágenes..docx
: Documentos de Microsoft Word..avi
: Videos.
Operaciones Básicas con Ficheros
Java proporciona herramientas en el paquete java.io
para realizar las siguientes operaciones esenciales:
1. Creación
La clase File
permite crear ficheros y directorios. Ejemplo:
import java.io.File;
import java.io.IOException;
public class CrearFichero {
public static void main(String[] args) {
try {
File fichero = new File("ejemplo.txt");
if (fichero.createNewFile()) {
System.out.println("Fichero creado: " + fichero.getName());
} else {
System.out.println("El fichero ya existe.");
}
} catch (IOException e) {
System.out.println("Ocurrió un error.");
e.printStackTrace();
}
}
}
2. Apertura
No se abre un fichero directamente como en otros lenguajes. En Java, se usa un flujo (stream) para leer o escribir datos.
3. Lectura
Usando FileReader
y BufferedReader
, podemos leer el contenido de un fichero:
import java.io.*;
public class LeerFichero {
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("ejemplo.txt"))) {
String linea;
while ((linea = br.readLine()) != null) {
System.out.println(linea);
}
} catch (IOException e) {
System.out.println("Ocurrió un error al leer el fichero.");
e.printStackTrace();
}
}
}
4. Escritura
Usando FileWriter
o BufferedWriter
, podemos añadir contenido a un fichero:
import java.io.*;
public class EscribirFichero {
public static void main(String[] args) {
try (BufferedWriter bw = new BufferedWriter(new FileWriter("ejemplo.txt", true))) {
bw.write("Nueva línea de texto.");
bw.newLine();
System.out.println("Texto añadido con éxito.");
} catch (IOException e) {
System.out.println("Ocurrió un error al escribir en el fichero.");
e.printStackTrace();
}
}
}
5. Borrado
Con el método delete()
de la clase File
:
import java.io.File;
public class BorrarFichero {
public static void main(String[] args) {
File fichero = new File("ejemplo.txt");
if (fichero.delete()) {
System.out.println("Fichero borrado: " + fichero.getName());
} else {
System.out.println("No se pudo borrar el fichero.");
}
}
}
Paquete java.io
El paquete java.io
incluye varias clases útiles para trabajar con ficheros, como:
- File: Representa un fichero o directorio.
- FileReader y FileWriter: Para leer y escribir ficheros de texto.
- BufferedReader y BufferedWriter: Mejoran la eficiencia en lectura y escritura.
- FileInputStream y FileOutputStream: Para manejar flujos de bytes en ficheros binarios.
Conclusión
Entender los conceptos básicos sobre ficheros en Java y sus operaciones es crucial para desarrollar aplicaciones robustas y eficientes. Desde la manipulación de ficheros de texto hasta el manejo de datos binarios, Java ofrece una amplia gama de herramientas que facilitan estas tareas. Con las prácticas y ejemplos proporcionados, estarás listo para trabajar con ficheros en tus proyectos.