Está en la página 1de 22

F.4411.316.013 - POEJ/MIXTO/F.

Generation/
Curso JAVA (Online-Nacional) 3ªEd.

Java Bootcamp
Eduardo Corral Muñoz
eoi_eduardo@corral.es
Java
Intermedio 3
Índice
_01 Manejo de archivos
La clase File
_02 Creación de archivos
_03 Lectura/Escritura
_04 Eliminar archivos
01

Manejo de archivos
La clase File
La clase File
El manejo del sistema de archivos es un parte importante de
cualquier aplicación, sea cual sea el lenguaje que empleemos
para su programación.
Java dispone de diversos métodos para crear, leer, actualizar y
borrar archivos.
La clase encargada del manejo de archivos es File que se
encuentra en el paquete java.io.
Para manejar un archivo, creamos un objeto de la clase File y
especificamos el nombre del archivo y/o la carpeta:
import java.io.File; // importa la clase File
File miObjeto = new File(“nombre.txt”); // Especifica el nombre

Manual
La clase File
Algunos métodos de la clase File:
Método Tipo Descripción
canRead() Boolean Comprueba si un archivo puede o no leerse
canWrite() Boolean Comprueba si un archivo puede escribirse
createNewFile() Boolean Crea un nuevo archivo vacio
delete() Boolean Elimina un archivo
exists() Boolean Comprueba si un archivo existe
getName() String Devuelve el nombre de un archivo
getAbsolutePath() String Devuelve el path absoluto del archivo
length() Long Devuelve la longitud de un archivo en bytes
list() String[] Devuelve un array con los archivos contenidos
en una carpeta
mkdir() Boolean Crea una carpeta
02

Creación de archivos
Crear archivos
Para crear un archivo tenemos el método createNewFile().
Este método devuelve true si se ha creado correctamente o false
si el archivo ya existe.
Utilizaremos try … catch para manejar las excepciones,
IOException, que se puedan producir si el archivo no se puede
crear por cualquier motivo.
Para crear un archivo en una carpeta específica, hay que indicar
el path completo empleando doble “backslash” (\\).
Si el path completo es:
C:\Users\ecorr\Documents\CursoEOI\Java\miarchivo.txt
debemos usar:
C: \\Users\\ecorr\\Documents\\CursoEOI\\Java\\miarchivo.txt
Crear archivos
import java.io.File;
import java.io.IOException;

public class CreaArchivo {


public static void main(String[] args) {
try {
File archivo = new File("miarchivo.txt");
if (archivo.createNewFile()) {
System.out.println("Creado: " + archivo.getName());
} else {
System.out.println(“¡El archivo ya existe!");
}
} catch (IOException e) {
System.err.println("¡Error al crear el archivo");
e.printStackTrace();
}
}
}
03

Lectura/Escritura
Escribir en un archivo
Para escribir en un archivo tenemos el método write(), incluido
en la clase FileWriter.
Una vez se ha escrito en el archivo, debemos emplear el método
close() para cerrarlo y dejarlo accesible para poder leerlo.
Escribir en un archivo
import java.io.FileWriter;
import java.io.IOException;

public class EscribirEnArchivo {


public static void main(String[] args) {
try {
FileWriter escribir = new FileWriter(“miarchivo.txt");
escribir.write(“Escribiendo en miarchivo desde Java");
escribir.close();
System.out.println(“¡Escritura correcta!");
} catch (IOException e) {
System.out.println("¡A ocurrido un error!");
e.printStackTrace();
}
}
}
Escribir en un archivo
Al instanciar el objeto tipo FileWriter, si no existía previamente el
archivo lo crea automáticamente.
Si creamos el objeto pasando como parámetro únicamente el
nombre del archivo, el método write() sobreescribirá cualquier
contenido que hubiera en el archivo y comenzara a escribir en el
principio del mismo. (Puntero de escritura al principio del archivo)
FileWriter escribir = new FileWriter(“miarchivo.txt");

Si creamos el objeto pasando como parámetro el nombre del


archivo y, como segundo parámetro (append) true, el método
write() empezará a escribir a continuación del contenido previo
que tuviera el archivo. (Puntero de escritura al final del archivo)
FileWriter escribir = new FileWriter(“miarchivo.txt“, true);
Leer un archivo
Para leer un archivo emplearemos la clase Scanner del paquete
java.util.

// Importamos las clases que intervienen


import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
Leer un archivo
public class LeerArchivo {
public static void main(String[] args) {
try {
File archivo = new File(“miarchivo.txt");
Scanner leer = new Scanner(archivo);
while (leer.hasNextLine()) {
String linea = leer.nextLine();
System.out.println(linea);
}
leer.close();
} catch (FileNotFoundException e) {
System.out.println ("¡A ocurrido un error!");
e.printStackTrace();
}
}
}
Leer un archivo
Para obtener más información de un archivo emplearemos algunos
métodos de la clase File.
import java.io.File;
public class GetFileInfo {
public static void main(String[] args) {
File arch = new File("filename.txt");
if (arch.exists()) {
System.out.println("Nombre: " + arch.getName());
System.out.println("Path: " + arch.getAbsolutePath());
System.out.println("Escribible: " + arch.canWrite());
System.out.println("Legible: " + arch.canRead());
System.out.println("Tamaño: " + arch.length());
} else {
System.out.println("¡El archivo no existe!");
}
}
}
Leer o escribir un archivo
En el API de Java hay disponibles muchas clases que permiten
efectuar lecturas o escrituras en archivos como:
FileReader,
BufferedReader,
Files,
Scanner,
FileInputStream,
FileWriter,
BufferedWriter,
FileOutputStream,
etc…

El uso de cada una de ellas depende tanto de la versión de Java


que se esté utilizando como del tipo de datos que vayamos a leer
(bytes o caracteres), del tamaño del archivo o de la línea, etc …
04

Eliminar archivos
Eliminar archivos
Para leer un borrar un archivo o carpeta emplearemos el método
delete() de la clase File del paquete java.io.

import java.io.File;

public class BorraArchivo {


public static void main(String[] args) {
File arch = new File("miarchivo.txt");
if (arch.delete()) {
System.out.println("Borrado: " + arch.getName());
} else {
System.out.println("¡No he podido borrarlo!");
}
}
}
Eliminar archivos
Para borrar una carpeta es preciso que esta esté vacía.

import java.io.File;

public class BorraCarpeta {


public static void main(String[] args) {
File carperta = new File("C:\\Users\\MyName\\Test");
if (carpeta.delete()) {
System.out.println("Borrada: " + carpeta.getName());
} else {
System.out.println(“¡No he podido borrarla!");
}
}
}
Ejercicios
Listar el contenido de una carpeta del sistema de archivos
Listar el contenido de una carpeta del sistema de archivos y de
todas sus subcarpetas mostrando el tamaño de los archivos
Mostrar el listado anterior como “estructura de árbol”
Crear un archivo y guardar en el contenido de un array (o
estructura de datos similar) que contenga nombres y correos
electrónicos.
Dar a ese archivo el formato y extensión .csv. (abrir en Excel)
Leer un archivo .csv completo y mostrarlo en consola.
Leer un archivo .csv y guardar el resultado en una array o
estructura similar.

También podría gustarte