Clase Java.io.File en Java
La clase de archivo Java 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 simple cadena no es adecuada para nombrarlos. La clase Java File contiene varios métodos para trabajar con el nombre de ruta, eliminar y cambiar el nombre de 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 cadena, puede ser absoluto o relativo. El padre de una ruta abstracta se puede obtener invocando el método getParent() de esta clase.
- En primer lugar, debemos crear el objeto de clase Archivo pasándole el nombre del archivo o 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 Archivo son inmutables; es decir, una vez creado, la ruta abstracta representada por un objeto Archivo nunca cambiará.
¿Cómo crear un objeto de archivo?
Un objeto File se crea pasando una cadena que representa el nombre de un archivo, una cadena u otro objeto File. 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.
Campos en clase de archivo en Java
| Campo | Tipo | Descripción |
|---|---|---|
| caminoSeparador | Cadena | el carácter o cadena utilizada para separar rutas individuales en una lista de rutas del sistema de archivos. |
| rutaSeparadorCar | Carbonizarse | el carácter utilizado para separar rutas individuales en una lista de rutas del sistema de archivos. |
| separador | Cadena | carácter separador de nombre predeterminado representado como una cadena. |
| separadorChar | Carbonizarse | carácter separador de nombre predeterminado. |
Constructores de clases de archivos Java
- Archivo (Archivo principal, Cadena secundaria): crea una nueva instancia de Archivo a partir de un nombre de ruta abstracto principal y una cadena de nombre de ruta secundaria. Archivo (nombre de ruta de cadena): crea una nueva instancia de archivo al convertir la cadena de nombre de ruta dada en un nombre de ruta abstracto. Archivo (cadena principal, cadena secundaria): crea una nueva instancia de archivo a partir de una cadena de nombre de ruta principal y una cadena de nombre de ruta secundaria. Archivo (URI uri): crea una nueva instancia de archivo convirtiendo el archivo dado: URI en una ruta de acceso abstracta.
Métodos de clase de archivo en Java
| S. No. | Método | Descripción | Tipo de devolución |
|---|---|---|---|
| 1. | puede ejecutar() | Prueba si la aplicación puede ejecutar el archivo indicado por este nombre de ruta abstracto. | booleano |
| 2. | puedo leer() | Prueba si la aplicación puede leer el archivo indicado por este nombre de ruta abstracto. | booleano |
| 3. | puede escribir() | Prueba si la aplicación puede modificar el archivo indicado por este nombre de ruta abstracto. | booleano |
| 4. | comparar con (nombre de ruta del archivo) | Compara lexicográficamente dos nombres de rutas abstractas. | En t |
| 5. | crearNuevoArchivo() | Crea atómicamente un archivo nuevo y vacío nombrado con esta ruta abstracta. | booleano |
| 6. | createTempFile(Prefijo de cadena, Sufijo de cadena) | Crea un archivo vacío en el directorio de archivos temporales predeterminado. | Archivo |
| 7. | borrar() | Elimina el archivo o directorio indicado por este nombre de ruta abstracto. | booleano |
| 8. | es igual(Objeto obj) | Prueba la igualdad de este nombre de ruta abstracto con el objeto dado. | booleano |
| 9. | existe() | Comprueba si existe el archivo o directorio indicado por esta ruta de acceso abstracta. | booleano |
| 10. | obtenerRutaAbsoluta() | Devuelve la cadena de nombre de ruta absoluta de este nombre de ruta abstracto. | Cadena |
| 11. | lista() | Devuelve una matriz de cadenas que nombran los archivos y directorios del directorio. | Cadena[] |
| 12. | obtener espacio libre() | Devuelve el número de bytes no asignados en la partición. | largo |
| 13. | obtenerNombre() | Devuelve el nombre del archivo o directorio indicado por esta ruta de acceso abstracta. | Cadena |
| 14. | obtenerpadre() | Devuelve la cadena de nombre de ruta del padre de este nombre de ruta abstracto. | Cadena |
| 15. | obtener archivo padre() | Devuelve el nombre de ruta abstracto del padre de este nombre de ruta abstracto. | Archivo |
| 16. | obtenerRuta() | Convierte este nombre de ruta abstracto en una cadena de nombre de ruta. | Cadena |
| 17. | establecerSoloLectura() | Marca el archivo o directorio nombrado 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 esta ruta abstracta es un archivo normal. | booleano |
| 20. | Está oculto() | Comprueba si el archivo nombrado por esta ruta abstracta es un archivo oculto. | booleano |
| 21. | longitud() | Devuelve la longitud del archivo indicado por este nombre de ruta abstracto. | largo |
| 22. | lista de archivos() | Devuelve una serie de nombres de rutas abstractos que indican los archivos del directorio. | Archivo[] |
| 23. | mkdir() | Crea el directorio nombrado por esta ruta abstracta. | booleano |
| 24. | cambiar nombre a (destino del archivo) | Cambia el nombre del archivo indicado por esta ruta de acceso abstracta. | booleano |
| 25. | setExecutable(ejecutable booleano) | Un método conveniente para establecer el permiso de ejecución del propietario. | booleano |
| 26. | setReadable (legible booleano) | Un método conveniente para configurar 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 (escribible booleano) | Un método conveniente para configurar el permiso de escritura del propietario. | booleano |
| 29. | Encadenar() | Devuelve la cadena de nombre de ruta de este nombre de ruta abstracto. | Cadena |
| 30. | aURI() | Construye un URI de archivo que representa este nombre de ruta abstracto. | TIPO |
Ejemplos de clases de archivos Java
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:UsersakkiIdeaProjectscodewritingsrcfile.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 utilizar 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 matriz. llegar[] . Luego pase estos elementos de la matriz arr[i] al objeto Archivo 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 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:UsersakkiIdeaProjects 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