La clase File es la representación de Java de un nombre de ruta de archivo o directorio. Debido a que los nombres de archivos y directorios tienen diferentes formatos en diferentes plataformas, una string simple no es adecuada para nombrarlos. La clase File contiene varios métodos para trabajar con el nombre de la ruta, eliminar y renombrar archivos, crear nuevos directorios, enumerar el contenido de un directorio y determinar varios atributos comunes de archivos y directorios.
- Es una representación abstracta de archivos y nombres de rutas de directorios.
- Un nombre de ruta, ya sea abstracto o en forma de string, puede ser absoluto o relativo. El padre de una ruta de acceso abstracta puede obtenerse invocando el método getParent() de esta clase.
- En primer lugar, debemos crear el objeto de la clase Archivo pasándole el nombre del archivo o el nombre del directorio. Un sistema de archivos puede implementar restricciones a ciertas operaciones en el objeto real del sistema de archivos, como lectura, escritura y ejecución. Estas restricciones se conocen colectivamente como permisos de acceso.
- Las instancias de la clase File son inmutables; es decir, una vez creado, el nombre de ruta abstracto representado por un objeto File nunca cambiará.
¿Cómo crear un objeto de archivo?
Un objeto de archivo se crea pasando una string que representa el nombre de un archivo, una string u otro objeto de archivo. Por ejemplo,
File a = new File("/usr/local/bin/geeks");
Esto define un nombre de archivo abstracto para el archivo geeks en el directorio /usr/local/bin. Este es un nombre de archivo abstracto absoluto.
Constructores de clase de archivo
- Archivo (archivo principal, string secundaria): crea una nueva instancia de archivo a partir de un nombre de ruta abstracto principal y una string de nombre de ruta secundaria.
- Archivo (string de nombre de ruta): crea una nueva instancia de archivo al convertir la string de nombre de ruta dada en un nombre de ruta abstracto.
- Archivo (string principal, string secundaria): crea una nueva instancia de archivo a partir de una string de nombre de ruta principal y una string de nombre de ruta secundaria.
- Archivo (URI uri): crea una nueva instancia de archivo al convertir el archivo dado: URI en una ruta de acceso abstracta.
Métodos de clase de archivo
S. No. | Método | Descripción | Tipo de retorno |
---|---|---|---|
1. | puedeEjecutar() | Comprueba si la aplicación puede ejecutar el archivo indicado por este nombre de ruta abstracto. | booleano |
2. | puedo leer() | Comprueba si la aplicación puede leer el archivo indicado por este nombre de ruta abstracto. | booleano |
3. | puede escribir() | Comprueba si la aplicación puede modificar el archivo indicado por este nombre de ruta abstracto. | booleano |
4. | compareTo (nombre de la ruta del archivo) | Compara lexicográficamente dos rutas de acceso abstractas. | En t |
5. | crearNuevoArchivo() | Crea atómicamente un nuevo archivo vacío nombrado por este nombre de ruta abstracto. | booleano |
6. | createTempFile (prefijo de string, sufijo de string) | Crea un archivo vacío en el directorio de archivos temporales predeterminado. | Expediente |
7. | Eliminar() | Elimina el archivo o directorio indicado por este nombre de ruta abstracto. | booleano |
8. | es igual a (Objeto obj) | Prueba este nombre de ruta abstracto para la igualdad con el objeto dado. | booleano |
9. | existe() | Comprueba si existe el archivo o directorio indicado por este nombre de ruta abstracto. | booleano |
10 | obtenerRutaAbsoluta() | Devuelve la string de nombre de ruta absoluta de este nombre de ruta abstracto. | Cuerda |
11 | lista() | Devuelve una array de strings que nombran los archivos y directorios en el directorio. | Cuerda[] |
12 | obtenerEspacioLibre() | Devuelve el número de bytes no asignados en la partición. | largo |
13 | obtenerNombre() | Devuelve el nombre del archivo o directorio indicado por este nombre de ruta abstracto. | Cuerda |
14 | obtenerPadre() | Devuelve la string de nombre de ruta del padre de este nombre de ruta abstracto. | Cuerda |
15. | getParentFile() | Devuelve el nombre de ruta abstracto del padre de este nombre de ruta abstracto. | Expediente |
dieciséis. | obtenerRuta() | Convierte este nombre de ruta abstracto en una string de nombre de ruta. | Cuerda |
17 | establecerSoloLectura() | Marca el nombre del archivo o directorio para que solo se permitan operaciones de lectura. | booleano |
18 | esDirectorio() | Comprueba si el archivo indicado por este nombre de ruta es un directorio. | booleano |
19 | esArchivo() | Comprueba si el archivo indicado por este nombre de ruta abstracto es un archivo normal. | booleano |
20 | Está oculto() | Comprueba si el archivo nombrado por este nombre de ruta abstracto es un archivo oculto. | booleano |
21 | longitud() | Devuelve la longitud del archivo indicada por este nombre de ruta abstracto. | largo |
22 | listFiles() | Devuelve una array de rutas de acceso abstractas que indican los archivos del directorio. | Expediente[] |
23 | mkdir() | Crea el directorio nombrado por este nombre de ruta abstracto. | booleano |
24 | renameTo(Destino del archivo) | Cambia el nombre del archivo indicado por este nombre de ruta abstracto. | booleano |
25 | setExecutable(ejecutable booleano) | Un método conveniente para establecer el permiso de ejecución del propietario. | booleano |
26 | setReadable(booleano legible) | Un método conveniente para establecer el permiso de lectura del propietario. | booleano |
27 | setReadable (legible booleano, solo propietario booleano) | Establece el permiso de lectura del propietario o de todos. | booleano |
28 | setWritable(booleano grabable) | Un método conveniente para establecer el permiso de escritura del propietario. | booleano |
29 | Enstringr() | Devuelve la string de nombre de ruta de este nombre de ruta abstracto. | Cuerda |
30 | aURI() | Construye un URI de archivo que representa este nombre de ruta abstracto. | URI |
Ejemplo 1: Programa para comprobar si un archivo o directorio existe físicamente o no.
Java
// In this Java program, we accepts a file or directory name from // command line arguments. Then the program will check if // that file or directory physically exist or not and // it displays the property of that file or directory. import java.io.File; // Displaying file property class fileProperty { public static void main(String[] args) { // accept file name or directory name through // command line args String fname = args[0]; // pass the filename or directory name to File // object File f = new File(fname); // apply File class methods on File object System.out.println("File name :" + f.getName()); System.out.println("Path: " + f.getPath()); System.out.println("Absolute path:" + f.getAbsolutePath()); System.out.println("Parent:" + f.getParent()); System.out.println("Exists :" + f.exists()); if (f.exists()) { System.out.println("Is writable:" + f.canWrite()); System.out.println("Is readable" + f.canRead()); System.out.println("Is a directory:" + f.isDirectory()); System.out.println("File Size in bytes " + f.length()); } } }
Producción:
File name :file.txt Path: file.txt Absolute path:C:\Users\akki\IdeaProjects\codewriting\src\file.txt Parent:null Exists :true Is writable:true Is readabletrue Is a directory:false File Size in bytes 20
Ejemplo 2: Programa para mostrar todo el contenido de un directorio
Aquí aceptaremos un nombre de directorio desde el teclado y luego mostraremos todo el contenido del directorio. Para este propósito, el método list() se puede usar como:
String arr[]=f.list();
En la declaración anterior, el método list() hace que todas las entradas del directorio se copien en la array arr[] . Luego pase estos elementos de array arr[i] al objeto File y pruébelos para saber si representan un archivo o directorio.
Java
// Java Program to display all // the contents of a directory import java.io.BufferedReader; import java.io.File; import java.io.IOException; import java.io.InputStreamReader; // Displaying the contents of a directory class Contents { public static void main(String[] args) throws IOException { // enter the path and dirname from keyboard BufferedReader br = new BufferedReader( new InputStreamReader(System.in)); System.out.println("Enter dirpath:"); String dirpath = br.readLine(); System.out.println("Enter the dirname"); String dname = br.readLine(); // create File object with dirpath and dname File f = new File(dirpath, dname); // if directory exists,then if (f.exists()) { // get the contents into arr[] // now arr[i] represent either a File or // Directory String arr[] = f.list(); // find no. of entries in the directory int n = arr.length; // displaying the entries for (int i = 0; i < n; i++) { System.out.println(arr[i]); // create File object with the entry and // test if it is a file or directory File f1 = new File(arr[i]); if (f1.isFile()) System.out.println(": is a file"); if (f1.isDirectory()) System.out.println(": is a directory"); } System.out.println( "No of entries in this directory " + n); } else System.out.println("Directory not found"); } }
Producción:
Enter dirpath: C:\Users\akki\IdeaProjects\ Enter the dirname codewriting .idea : is a directory an1.txt : is a file codewriting.iml : is a file file.txt : is a file out : is a directory src : is a directory text : is a file No of entries in this directory 7
Publicación relacionada: FileReader y FileWriter en Java
Este artículo es una contribución de Nishant Sharma . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA