Clase Java.io.File en Java

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

Deja una respuesta

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