Clase File y sus métodos

Hola a todos, hoy os explicare como se usa la clase File y sus métodos principales.

La clase File representa un fichero o directorio de nuestro sistema de archivos. También nos es útil ya que puede pasarse como parámetro para las principales clases que manejan ficheros, como FileReader, FileInputStream, FileWriter, etc.

Podemos pasarle un String con la ruta del fichero, también hay otros constructores. Estos son:

Constructores file

Esta clase esta en el paquete java.io.

A diferencia de otras clases que manejan ficheros, en la clase File no es necesario controlar excepciones en la mayoría de los métodos. Si hay alguna excepción a manejar lo indicaremos.

Estos son los métodos mas conocidos:

NombreDescripciónParámetrosDato devuelto
existsIndica si existe o no el fichero.Ninguno.boolean
isDirectoryIndica si el objeto File es un directorio.Ninguno.boolean
isFileIndica si el objeto File es un fichero.Ninguno.boolean
isHiddenIndica si el objeto File esta oculto.Ninguno.boolean
getAbsolutePathDevuelve una cadena con la ruta absoluta del fichero o directorio.Ninguno.String
canReadIndica si se puede leer. Ninguno.boolean
canWriteIndica si se puede escribir.Ninguno.boolean
canExecuteIndica si se puede ejecutar.Ninguno.boolean
getNameDevuelve una cadena con el nombre del fichero o directorio.Ninguno.String
getParentDevuelve una cadena con el directorio padre.Ninguno.String
listFilesDevuelve un array de File con los directorios hijos. Solo funciona con directorios.Ninguno.Array de File
listDevuelve un array de String con los directorios hijos. Solo funciona con directorios.Ninguno.Array de String
mkdirPermite crear el directorio en la ruta indicada. Solo se creara si no existe.Ninguno.boolean
mkdirsPermite crear el directorio en la ruta indicada, también crea los directorios intermedios. Solo se creara si no existe.Ninguno.boolean
createNewFilePermite crear el fichero en la ruta indicada. Solo se creara si no existe. Debemos controlar la excepcion con IOException.Ninguno.boolean
Os dejo un ejemplo, usando los métodos:

import java.io.File;
import java.io.IOException;
public class EjemploFileApp {

	public static void main(String[] args) throws IOException {

		//Creamos objetos File
		File fichero=new File("D:\\fich_binario.ddr");
		File fichero2=new File("D:\\fichero.txt");
		File directorio=new File("D:\\prueba");
		File directorio2=new File("D:\\directorio");

                //Creo los ficheros y directorios
                fichero.createNewFile();
                fichero2.createNewFile();
                directorio.mkdir();
                directorio2.mkdir();
		
                //Indica si existen los archivos
		System.out.println("Existencia: ");
		System.out.println("Fichero "+fichero.exists());
		System.out.println("Directorio "+directorio.exists());

		System.out.println("");

		//Indica si son directorios
		System.out.println("¿Son directorios?: ");
		System.out.println("Fichero "+fichero.isDirectory());
		System.out.println("Directorio "+directorio.isDirectory());

		System.out.println("");

		//Indica si son ficheros
		System.out.println("¿Son ficheros?: ");
		System.out.println("Fichero "+fichero.isFile());
		System.out.println("Directorio "+directorio.isFile());

		System.out.println("");

		//Indica la ruta absoluta del fichero o directorio
		System.out.println("Ruta absoluta: ");
		System.out.println("Fichero "+fichero.getAbsolutePath());
		System.out.println("Directorio "+directorio.getAbsolutePath());

		System.out.println("");

		//Indica si se puede leer
		System.out.println("¿Se pueden leer?:");
		System.out.println("Fichero "+fichero.canRead());
		System.out.println("Directorio "+directorio.canRead());

		System.out.println("");

		//Indica si se puede escribir
		System.out.println("¿Se pueden escribir?:");
		System.out.println("Fichero "+fichero.canWrite());
		System.out.println("Directorio "+directorio.canWrite());

		System.out.println("");

		//Indica si se puede ejecutar
		System.out.println("¿Se pueden ejecutar?:");
		System.out.println("Fichero "+fichero.canExecute());
		System.out.println("Directorio "+directorio.canExecute());

		System.out.println("");

		//Indica el nombre sin rutas
		System.out.println("Nombres sin rutas: ");
		System.out.println("Fichero "+fichero.getName());
		System.out.println("Directorio "+directorio.getName());

		System.out.println("");

		//Indica el nombre del directorio padre
		System.out.println("Nombre del directorio padre: ");
		System.out.println("Fichero "+fichero.getParent());
		System.out.println("Directorio "+directorio.getParent());

		System.out.println("");

		//Guarda en un array de File los directorios hijos, solo con directorios
		System.out.println("Nombre de los objetos File dentro de un array");
		File lista[]=directorio.listFiles();
		for(int i=0;i<lista.length;i++){
			System.out.println(lista[i]);
		}

		System.out.println("");

		//Guarda en un array de String los directorios hijos, solo con directorios
		System.out.println("Nombre de los objetos String dentro de un array");
		String listaString[]=directorio.list();
		for(int i=0;i<listaString.length;i++){
			System.out.println(listaString[i]);
		}

		System.out.println("");

		
	}
}

La clase File tenemos un par de constantes muy útiles, que nos servirán si usamos nuestra aplicación en varios sistemas operativos. Nos permitirá mostrar el separador entre ficheros  entre rutas de cada sistema operativo, por ejemplo, para Windows, se separan las rutas con ; y los directorios con \. Los métodos son pathSeparator y separator.

Se invocan con el nombre de la clase, por ejemplo, File.separator.

Espero que os sea de ayuda. Si tenéis dudas, preguntad. Estamos par ayudarte.

Compartir

4 comentarios

  1. yurit

    Gracias amigo esto vale oro !!! :) muy buen aporte nuevamente gracias !!!

  2. Carlos

    Muy buena pagina, quisiera que mires mi pagina porque también esta relacionado a lo q haces si fueras tan amable y poder decirme si voy por el buen camino

  3. Nohely

    Buen dia, al copiar el codigo en eclipse me da este error, podria ayudarme??

    Exception in thread «main» java.io.IOException: Acceso denegado
    at java.io.WinNTFileSystem.createFileExclusively(Native Method)
    at java.io.File.createNewFile(Unknown Source)
    at Nohely_Prueba.EjemploFileApp.main(EjemploFileApp.java:16)

  4. Disco Duro de Roer Post author

    Eso sera porque el fichero que estas accediendo no tendrá permisos.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *