¿Para qué sirve esta clase, qué nos permite? La clase File
proporciona una representación abstracta de ficheros y directorios.
Esta clase, permite examinar y manipular archivos y directorios, independientemente de la plataforma en la que se esté trabajando: Linux, Windows, etc.
Las instancias de la clase File
representan nombres de archivo, no los archivos en sí mismos.
El archivo correspondiente a un nombre puede ser que no exista, por esta razón habrá que controlar las posibles excepciones.
Un objeto de clase File
permite examinar el nombre del archivo, descomponerlo en su rama de directorios o crear el archivo si no existe, pasando el objeto de tipo File
a un constructor adecuado como FileWriter(File f)
, que recibe como parámetro un objeto File
.
Para archivos que existen, a través del objeto File
, un programa puede examinar los atributos del archivo, cambiar su nombre, borrarlo o cambiar sus permisos. Dado un objeto File
, podemos hacer las siguientes operaciones con él:
- Renombrar el archivo, con el método
renameTo()
. El objetoFile
dejará de referirse al archivo renombrado, ya que elString
con el nombre del archivo en el objetoFile
no cambia. - Borrar el archivo, con el método
delete()
. También, condeleteOnExit()
se borra cuando finaliza la ejecución de la máquina virtual Java. - Crear un nuevo fichero con un nombre único. El método estático
createTempFile()
crea un fichero temporal y devuelve un objetoFile
que apunta a él. Es útil para crear archivos temporales, que luego se borran, asegurándonos tener un nombre de archivo no repetido. - Establecer la fecha y la hora de modificación del archivo con
setLastModified()
. Por ejemplo, se podría hacer:new File("prueba.txt").setLastModified(new Date().getTime());
para establecerle la fecha actual al fichero que se le pasa como parámetro, en este caso prueba.txt. - Crear un directorio, mediante el método
mkdir()
. También existemkdirs()
, que crea los directorios superiores si no existen. - Listar el contenido de un directorio. Los métodos
list()
ylistFiles()
listan el contenido de un directorio.list()
devuelve un vector deString
con los nombres de los archivos,listFiles()
devuelve un vector de objetosFile
. - Listar los nombres de archivo de la raíz del sistema de archivos, mediante el método estático
listRoots()
.
File
:public File(String nombreFichero|path);
public File(String path, String nombreFichero|path);
public File(File path, String nombreFichero|path);
path
puede ser absoluta o relativa.File f = new File("personas.dat");
Crea un ObjetoFile
asociado al fichero personas.dat que se encuentra en el directorio de trabajo. En este caso no se indicapath
. Se supone que el fichero se encuentra en el directorio actual de trabajo.File f = new File("ficheros/personas.dat");
Crea un ObjetoFile
asociado al fichero personas.dat que se encuentra en el directorio ficheros dentro del directorio actual. En este caso se indica la ruta relativa tomando como base el directorio actual de trabajo. Se supone que el fichero personas.dat se encuentra en el directorio ficheros. A su vez el directorio ficheros se encuentra dentro del directorio actual de trabajo.File f = new File("c:/ficheros/personas.dat");
Crea un ObjetoFile
asociado al fichero personas.dat dando la ruta absoluta:
File
cuya ruta (absoluta o relativa) se indica en el primer String.File f = new File("ficheros", "personas.dat" );
Crea un ObjetoFile
asociado al fichero personas.dat que se encuentra en el directorio ficheros dentro del directorio actual. En este caso se indica la ruta relativa tomando como base el directorio actual de trabajo.
File
cuya ruta se indica a través de otro objeto File.
File ruta = new File("ficheros");
File f = new File(ruta, "personas.dat" );
Crea un ObjetoFile
asociado al fichero personas.dat que se encuentra en el directorio ficheros dentro del directorio actual.
File
no significa que deba existir el fichero o el directorio o que el path
sea correcto.File
son los siguientes:
Método
|
Descripción
|
boolean canRead() |
Devuelve true si se puede leer el fichero
|
boolean canWrite() |
Devuelve true si se puede escribir en el fichero
|
boolean createNewFile() |
Crea el fichero asociado al objeto File. Devuelve true si se ha podido crear. Para poder crearlo el fichero no debe existir. Lanza una excepción del tipo IOException.
|
boolean delete() |
Elimina el fichero o directorio. Si es un directorio debe estar vacío. Devuelve true si se ha podido eliminar.
|
boolean exists() |
Devuelve true si el fichero o directorio existe
|
String getName() |
Devuelve el nombre del fichero o directorio
|
String getAbsolutePath() |
Devuelve la ruta absoluta asociada al objeto File.
|
String getCanonicalPath() |
Devuelve la ruta única absoluta asociada al objeto File. Puede haber varias rutas absolutas asociadas a un File pero solo una única ruta canónica. Lanza una excepción del tipo IOException.
|
String getPath() |
Devuelve la ruta con la que se creó el objeto File. Puede ser relativa o no.
|
|
Devuelve un String conteniendo el directorio padre del File. Devuelve null si no tiene directorio padre.
|
|
Devuelve un objeto File conteniendo el directorio padre del File. Devuelve null si no tiene directorio padre.
|
boolean isAbsolute() |
Devuelve true si es una ruta absoluta
|
boolean isDirectory() |
Devuelve true si es un directorio válido
|
boolean isFile() |
Devuelve true si es un fichero válido
|
long lastModified() |
Devuelve un valor en milisegundos que representa la última vez que se ha modificado (medido desde las 00:00:00 GMT, del 1 de Enero de 1970). Devuelve 0 si el fichero no existe o ha ocurrido un error.
|
long length() |
Devuelve el tamaño en bytes del fichero. Devuelve 0 si no existe. Devuelve un valor indeterminado si es un directorio.
|
String[] list() |
Devuelve un array de String con el nombre de los archivos y directorios que contiene el directorio indicado en el objeto File. Si no es un directorio devuelve null. Si el directorio está vacío devuelve un array vacío.
|
String[] list(FilenameFilter filtro) |
Similar al anterior. Devuelve un array de String con el nombre de los archivos y directorios que contiene el directorio indicado en el objeto File que cumplen con el filtro indicado.
|
boolean mkdir() |
Crea el directorio. Devuelve true si se ha podido crear.
|
boolean mkdirs() |
Crea el directorio incluyendo los directorios no existentes especificados en la ruta padre del directorio a crear. Devuelve true si se ha creado el directorio y los directorios no existentes de la ruta padre.
|
boolean renameTo(File dest) |
Cambia el nombre del fichero por el indicado en el parámetro dest. Devuelve true si se ha realizado el cambio.
|