La gestione dei file in Java è affidata principalmente al package java.nio.file, introdotto a partire da Java 7. Questo package fornisce un insieme di classi e interfacce per lavorare con file e directory in modo più flessibile e potente rispetto alle funzionalità offerte dalle vecchie classi come File nel package java.io.
Ecco alcune delle classi principali e operazioni comuni per la gestione dei file in Java:
La classe Path rappresenta un percorso del file o della directory. Può essere ottenuta utilizzando il metodo Paths.get().
Path percorso = Paths.get("path/del/file.txt");-
Lettura con
Files.readAllLines():List<String> linee = Files.readAllLines(percorso);
-
Scrittura con
Files.write():List<String> linee = Arrays.asList("Linea 1", "Linea 2", "Linea 3"); Files.write(percorso, linee, StandardCharsets.UTF_8);
-
Creazione di File con
Files.createFile():Path nuovoFile = Paths.get("nuovofile.txt"); Files.createFile(nuovoFile);
-
Creazione di Directory con
Files.createDirectory():Path nuovaDirectory = Paths.get("nuovadirectory"); Files.createDirectory(nuovaDirectory);
-
Eliminazione di File o Directory con
Files.delete():Files.delete(percorso);
-
Copia di File con
Files.copy():Path destinazione = Paths.get("copiafile.txt"); Files.copy(percorso, destinazione, StandardCopyOption.REPLACE_EXISTING);
-
Spostamento di File con
Files.move():Path destinazione = Paths.get("nuova/posizione/file.txt"); Files.move(percorso, destinazione, StandardCopyOption.REPLACE_EXISTING);
-
Verifica dell'Esistenza con
Files.exists():boolean esiste = Files.exists(percorso);
-
Recupero dei Dettagli con
Files.isDirectory()eFiles.isRegularFile():boolean isDirectory = Files.isDirectory(percorso); boolean isFile = Files.isRegularFile(percorso);
-
Recupero delle Informazioni con
Files.size():long dimensione = Files.size(percorso);
-
Recupero della Data di Ultima Modifica con
Files.getLastModifiedTime():FileTime dataModifica = Files.getLastModifiedTime(percorso);
- Elenco dei File in una Directory con
Files.list():try (Stream<Path> elencoFiles = Files.list(directory)) { elencoFiles.forEach(System.out::println); } catch (IOException e) { e.printStackTrace(); }
-
Ottenere il Percorso Assoluto con
toAbsolutePath():Path percorsoAssoluto = percorso.toAbsolutePath();
-
Ottenere un Percorso Relativo con
relativize():Path percorsoRelativo = percorsoAssoluto.relativize(percorso);
Questi sono solo alcuni esempi delle operazioni comuni di gestione dei file in Java. L'utilizzo di java.nio.file offre molte più funzionalità, come la gestione delle operazioni atomiche, la gestione dei link simbolici e altro ancora. La gestione dei file in Java è diventata più potente e flessibile grazie a queste nuove funzionalità introdotte.