CodeGym /Java Blog /Random-IT /Classe Java.io.File
John Squirrels
Livello 41
San Francisco

Classe Java.io.File

Pubblicato nel gruppo Random-IT
In molti casi, il programma deve accedere a determinati file durante il suo lavoro. Ad esempio, i dati dell'utente possono essere registrati in un file esterno e, per leggerli, il programma deve essere in grado di lavorare con essi: aprire, leggere i dati, possibilmente modificare e chiudere. Per questi scopi, il linguaggio di programmazione Java dispone della classe Java.io.File . In questo articolo considereremo che tipo di classe è e forniremo un esempio di come lavorare con essa.

Cos'è la classe File Java

La classe File è definita nel pacchetto java.io e non funziona direttamente con i flussi. La classe Java File serve a gestire le informazioni su file e directory. Come sai, a livello di sistema operativo, file e directory sono oggetti diversi. Tuttavia in Java, entrambi sono descritti dalla stessa classe File . Forse ti starai chiedendo perché non usare semplicemente le stringhe per fare riferimento ai file? Innanzitutto perché l'accesso ai file è diverso a seconda del sistema operativo.

Costruttori di classi di file

A seconda che l' oggetto Classe Java.io.File debba rappresentare un file o una directory, possiamo utilizzare uno dei costruttori per creare l'oggetto: File(String pathname) in questo caso il costruttore crea una nuova istanza File convertendo il percorso specificato stringa in un percorso astratto. File(String myPath, String myString) questo costruttore crea una nuova istanza File da una stringa del nome percorso myPath e una stringa del nome percorso myString. File (genitore file, nome stringa) crea una nuova istanza File da un percorso astratto del file e una stringa del nome percorso. File(URI uri) in questo caso il costruttore crea una nuova istanza File convertendo il file specificato: URI in un percorso astratto. URI è una classe Java che rappresenta un riferimento URI (Uniform Resource Identifier). Ecco un esempio di diversi costruttori di classi Java.io.File :
import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;

public class FileTest {
   public static void main(String[] args) throws URISyntaxException {
       File myFile1 = new File("d:\\MyCat");
       File myFile2 = new File ("d:\\MyCat", "cat.txt");
       File myFile3 = new File(myFile1, "cat.txt");
       URI uri = new URI ("https://docs.oracle.com/javase/7/docs/api/java/net/URI.html");
       File myFile4 = new File(uri);
   }
}

Metodi di classe dei file

La classe Java File ha una serie di metodi che consentono di manipolare file e directory. Consideriamone alcuni:
  • booleano createNewFile() crea un nuovo file nel percorso passato al costruttore. Restituisce vero se ha successo, altrimenti falso

  • boolean delete() elimina una directory o un file nel percorso passato al costruttore. Restituisce vero in caso di eliminazione riuscita

  • boolean esiste() controlla se esiste un file o una directory nel percorso specificato nel costruttore. Se il file o la directory esiste, restituisce vero, altrimenti restituisce falso

  • String getAbsolutePath() restituisce il percorso assoluto per il percorso passato al costruttore dell'oggetto

  • String getName() restituisce il nome breve di un file o di una directory

  • String getParent() restituisce il nome della directory principale

  • booleano isDirectory() restituisce true se il percorso indicato contiene una directory

  • booleano isFile() restituisce true se è presente un file nel percorso indicato

  • boolean isHidden() restituisce true se la directory o il file è nascosto

  • long length() restituisce la dimensione del file in byte

  • long lastModified() restituisce l'ora dell'ultima modifica di un file o di una directory. Il valore rappresenta il numero di millisecondi trascorsi dall'epoca di Unix

  • String[] list() restituisce un array di file e sottodirectory che si trovano in una directory specifica

  • File[] listFiles() restituisce un array di file e sottodirectory che si trovano in una directory specifica

  • boolean mkdir() crea una nuova directory e restituisce true in caso di successo

  • booleano renameTo(File dest) rinomina un file o una directory

Alcune funzionalità della classe Java File

  • Il percorso, astratto o stringa, può essere assoluto o relativo. Il genitore di un percorso astratto può essere recuperato chiamando il metodo getParent() di quella classe.

  • Per prima cosa dovremmo creare un oggetto della classe File , passandogli il nome di un file o di una directory. Il file system può imporre restrizioni su determinate operazioni sull'effettivo oggetto del file system, come lettura, scrittura ed esecuzione. Queste restrizioni sono chiamate permessi di accesso.

  • Le istanze della classe File sono immutabili. Ciò significa che una volta creato un file, il percorso astratto rappresentato dall'oggetto File non cambierà mai.

Esempi di codici di classi di file

Creiamo un programma che funzioni con le directory. Prima di tutto dovrebbe creare una directory nel percorso indicato, quindi creare un nuovo file e verificare se il file e la directory esistono.
import java.io.File;
import java.io.IOException;

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

       //create a directory using mkdir() File class method
       File dir = new File("d:\\MyDir");
       boolean created = dir.mkdir();
       if(created)
           System.out.println("Folder has been created...");
       else
           System.out.println("Folder hasn't been created...");
       File myFile = new File("d:\\MyDir\\cat.txt");
       myFile.createNewFile();
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if(myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");
      }
}
Ecco l'output:
La cartella è stata creata... Nome file: cat.txt Cartella principale: d:\MyDir Il file esiste
A proposito, se hai fatto tutto bene, puoi trovare una nuova directory e un nuovo file sul tuo computer. Ora scriviamo un programma in cui possiamo lavorare con la directory creata e il file. Qui utilizziamo alcuni dei metodi descritti sopra.
import java.io.File;

public class FileTest3 {

   public static void main(String[] args) {

       File dir = new File("d:\\MyDir");
       File myFile = new File("d:\\MyDir\\cat.txt");
       System.out.println("File name: " + myFile.getName());
       System.out.println("Parent folder: " + myFile.getParent());
       if (myFile.exists())
           System.out.println("File exists");
       else
           System.out.println("File not found");

       System.out.println("Absolute path: " + myFile.getAbsolutePath());

       if (myFile.exists()) {
           System.out.println("Is writable: " + myFile.canWrite());
           System.out.println("Is readable: " + myFile.canRead());
           System.out.println("Is a directory: " + myFile.isDirectory());
           System.out.println("myFile Size in bytes = " + myFile.length());

       }
   }
}
L'output del programma è:
Nome file: cat.txt Cartella principale: d:\MyDir Il file esiste Percorso assoluto: d:\MyDir\cat.txt È scrivibile: true È leggibile: true È una directory: false myFile Dimensione in byte = 0
Commenti
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION