Dungeon of Bits
Aprendiendo informática.
Dungeon of Bits

Ficheros en Java

En este tutorial crearemos ficheros utilizando Java, después los usaremos para escribir y leer información.

Java

Requisitos:

Para realizar esta práctica solamente necesitas un editor de texto o un IDE de desarrollo y JDK, en nuestro caso usamos IntelliJ IDEA.

Crear un fichero en Java:

Para crear un fichero en JAVA usamos la clase File de Java, hay que tener en cuenta que podemos generar una IOException, por lo que habrá que gestionarla.

En el siguiente ejemplo vamos a crear un fichero llamado datos.txt:

import java.io.File;
import java.io.IOException;

public class fileCreate {
    public static void main(String[] args) {
        try {
            File ficheroDatos = new File("datos.txt");            
            if (ficheroDatos.createNewFile()) {
                System.out.println("Fichero "+ ficheroDatos.getName() +" creado");
            }            
            else {
                System.out.println("No se ha podido crear el fichero. Probablemente ya exista.");
            }
        }catch(IOException error){
            System.out.println("Error al crear el fichero.");
            error.printStackTrace();
        }
    }
}

Ruta del fichero:

Cuando creamos un fichero podemos dar la ruta completa hasta el fichero o la relativa, en el ejemplo el fichero datos.txt se ha creado en el directorio del proyecto de IntelliJ, si queremos podemos asignarle una ruta absoluta.

Por ejemplo, para crear el fichero en el directorio /home/usuario escribimos:

File ficheroDatos = new File("/home/usuario/datos.txt");  

Eliminar un Fichero:

Para eliminar un fichero podemos usar la clase clase File con su método delete().

El método delete devolverá cierto si ha podido borrar el fichero y falso si no ha podido, probablemente en ese caso el fichero no existía.

En el ejemplo siguiente borramos el fichero datos.txt y avisamos al usuario si se ha podido borrar o no:

import java.io.File;

public class fileDelete {
    public static void main(String[] args) {
        File ficheroDatos = new File("datos.txt");
        Boolean ficheroBorrado = ficheroDatos.delete();
        if(ficheroBorrado){
            System.out.println("Se ha borrado el fichero.");
        }else{
            System.out.println("No se ha borrado el fichero.");
        }
    }
}

Crear un directorio:

Para crear un directorio, la clase clase File dispone del método mkdir().

En el siguiente ejemplo creamos el directorio /home/profe/directorioTemporal/:

import java.io.File;

public class fileDirectory {
    public static void main(String[] args) {
        File ficheroDatos = new File("/home/profe/directorioTemporal/");
        if (ficheroDatos.mkdir()) {
            System.out.println("Directorio "+ ficheroDatos.getName() +" creado");
        }
        else {
            System.out.println("No se ha podido crear el directorio. Probablemente ya exista.");
        }
    }
}

Eliminar un directorio:

Es exactamente igual que eliminar un fichero pero poniendo la ruta del directorio en lugar de la de un fichero. Por ejemplo para eliminar el directorio /home/usuario/directorioTemporal/ escribiremos:

import java.io.File;

public class fileDelete {
    public static void main(String[] args) {
        File directorioDatos = new File("/home/usuario/directorioTemporal/");
        Boolean directorioBorrado = directorioDatos.delete();
        if(directorioBorrado){
            System.out.println("Se ha borrado el directorio.");
        }else{
            System.out.println("No se ha borrado el directorio.");
        }
    }
}

Escribir en un fichero:

Usaremos la clase FileWriter de Java para escribir en un fichero.

En el siguiente ejemplo vamos a escribir información en el fichero datos.txt:

import java.io.FileWriter;
import java.io.IOException;

public class fileWrite {
    public static void main(String[] args) {
        try{            
            FileWriter escritorDeFichero = new FileWriter("datos.txt");            
            escritorDeFichero.write("Información.");
            escritorDeFichero.close();
            System.out.println("Fichero escrito con éxito.");
        }catch (IOException error){
            System.out.println("Error escribir en el fichero.");
            error.printStackTrace();
        }
    }
}

Sobreescribir o añadir al final (overwrite or append):

Con FileWriter podemos escribir un fichero borrando todo lo que tenía en él utilizando el constructor FileWriter("nombrefichero") o añadir información al final de un fichero que ya tiene algo escrito, con el método FileWriter("nombreFichero, True).

En el ejemplo anterior si queremos escribir información a continuación de la que ya hay debemos substituir la línea:

FileWriter escritorDeFichero = new FileWriter("datos.txt");

por esta otra:

FileWriter escritorDeFichero = new FileWriter("datos.txt",true);

Leer un fichero:

Para leer de fichero utilizaremos la clase Scanner de Java.

Cuando leemos, si no existe el fichero, podemos provocar una excepción FileNotFoundException que debemos controlar.

El siguiente código lee la información del fichero datos.txt y la muestra por consola:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class fileRead {
    public static void main(String[] args) {
        try {
            File ficheroDatos = new File("datos.txt");
            Scanner lectorDatos = new Scanner(ficheroDatos);
            while (lectorDatos.hasNextLine()){
                String datos = lectorDatos.nextLine();
                System.out.println(datos);
            }
            lectorDatos.close();
        }catch(FileNotFoundException error){
            System.out.println("Error al abrir el fichero para lectura.");
            error.printStackTrace();
        }
    }
}