Path: rappresentare i percorsi dei file
Crei oggetti Path, risolva e renda relativi i percorsi e manipoli i relativi componenti.
Path: rappresentare i percorsi dei file è una lezione Java Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Java Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Java Academy include 4 lezioni in totale.
Introduzione a Path
L'interfaccia java.nio.file.Path rappresenta la posizione di un file o di una directory nel file system. Sostituisce la classe legacy java.io.File con un'API più ricca e indipendente dalla piattaforma.
import java.nio.file.*;
Path p1 = Path.of("/home/user/documents/report.txt");
Path p2 = Paths.get("/home", "user", "documents", "report.txt");
System.out.println(p1); // /home/user/documents/report.txt
System.out.println(p1.equals(p2)); // trueComponenti di Path
Estragga i componenti di un percorso:
Path path = Path.of("/home/user/docs/report.txt");
System.out.println(path.getFileName()); // report.txt
System.out.println(path.getParent()); // /home/user/docs
System.out.println(path.getRoot()); // /
System.out.println(path.getNameCount()); // 4
System.out.println(path.getName(0)); // home
System.out.println(path.getName(3)); // report.txtPercorsi relativi e assoluti
Un percorso può essere assoluto (parte dalla radice) o relativo (parte dalla directory corrente). Utilizzi isAbsolute() per verificarlo e toAbsolutePath() per risolvere un percorso relativo rispetto alla directory di lavoro corrente.
Path rel = Path.of("docs/report.txt");
Path abs = Path.of("/home/user/docs/report.txt");
System.out.println(rel.isAbsolute()); // false
System.out.println(abs.isAbsolute()); // true
Path resolved = rel.toAbsolutePath(); // resolves against CWD
System.out.println(resolved);resolve: combinazione di percorsi
resolve(other) aggiunge un altro percorso. Se other è assoluto, sostituisce interamente il percorso corrente.
Path base = Path.of("/home/user");
Path docs = base.resolve("documents");
Path file = docs.resolve("report.txt");
System.out.println(file); // /home/user/documents/report.txt
// Resolving an absolute path replaces:
Path abs = base.resolve(Path.of("/etc/config"));
System.out.println(abs); // /etc/configrelativize: calcolo di percorsi relativi
relativize(other) calcola il percorso relativo da questo percorso a other:
Path from = Path.of("/home/user");
Path to = Path.of("/home/user/docs/report.txt");
Path rel = from.relativize(to);
System.out.println(rel); // docs/report.txt
// Verify:
System.out.println(from.resolve(rel)); // /home/user/docs/report.txtnormalize: rimozione delle ridondanze
normalize() rimuove i segmenti . e .. da un percorso:
Path messy = Path.of("/home/user/../user/./docs/./report.txt");
Path clean = messy.normalize();
System.out.println(clean); // /home/user/docs/report.txtstartsWith ed endsWith
Verifichi le relazioni tra prefissi e suffissi dei percorsi:
Path p = Path.of("/home/user/docs/report.txt");
System.out.println(p.startsWith("/home/user")); // true
System.out.println(p.startsWith("/home/other")); // false
System.out.println(p.endsWith("report.txt")); // true
System.out.println(p.endsWith("docs/report.txt")); // trueConversione in File e URI
Converta un Path nella classe legacy File o in un URI quando necessario:
Path path = Path.of("/home/user/report.txt");
java.io.File file = path.toFile();
System.out.println(file.exists()); // depends on filesystem
java.net.URI uri = path.toUri();
System.out.println(uri); // file:///home/user/report.txtPath su piattaforme diverse
Path.of() utilizza il separatore della piattaforma. Su Windows i percorsi utilizzano la barra rovesciata, mentre su Unix utilizzano la barra normale. L'API gestisce questa differenza in modo trasparente.
// Portable path construction (works on all platforms):
Path config = Path.of("config", "app", "settings.json");
// On Unix: config/app/settings.json
// On Windows: config\app\settings.json
System.out.println(config);Iterazione sugli elementi di Path
Utilizzi un ciclo for-each o iterator() per iterare sui singoli elementi di nome:
Path path = Path.of("/home/user/docs/report.txt");
for (Path element : path) {
System.out.println(element); // home, user, docs, report.txt
}
// Note: root ("/") is not included in iterationsubpath: estrazione di una porzione
subpath(begin, end) restituisce un percorso relativo per un intervallo di elementi di nome:
Path p = Path.of("/home/user/docs/report.txt");
// Indices: home=0, user=1, docs=2, report.txt=3
System.out.println(p.subpath(1, 3)); // user/docs
System.out.println(p.subpath(0, 2)); // home/userVerifica rapida
Dato Path.of("/home/user").resolve("docs/file.txt"), qual è il risultato?
Riepilogo: API Path
Punti chiave:
- Path.of() / Paths.get() creano istanze di Path
- getFileName, getParent, getRoot, getName, getNameCount per i componenti
- resolve() aggiunge; relativize() calcola il percorso relativo; normalize() elimina ./ e ../
- startsWith/endsWith per verificare prefissi e suffissi
- Indipendente dalla piattaforma: il separatore viene gestito automaticamente
Domande Frequenti
La lezione «Path: rappresentare i percorsi dei file» è gratuita?
Sì — il testo completo di «Path: rappresentare i percorsi dei file» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Java Academy, passa a CoddyKit PRO. Il corso Java Academy include 4 lezioni in totale.
Cosa imparerò in «Path: rappresentare i percorsi dei file»?
Crei oggetti Path, risolva e renda relativi i percorsi e manipoli i relativi componenti. Eserciti Java Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Java Academy?
Non è richiesta alcuna esperienza precedente. Java Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.
Quanto tempo richiede la lezione «Path: rappresentare i percorsi dei file»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Java Academy?
Sì. Ogni lezione Java Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Path: rappresentare i percorsi dei file
- Utility Files: leggere, scrivere, copiare e spostare
- Attraversare gli alberi di directory con Files.walk
- WatchService: monitorare le modifiche ai file