1. Path
classe
Se vuoi scrivere un programma che faccia qualcosa con i file su disco, è abbastanza facile. Java ha molte classi che ti aiutano a lavorare sia con i file stessi che con i loro contenuti.
Le prime versioni di Java utilizzavano classi come File
e FileInputStream
per lavorare con i file. Tuttavia, la File
classe è ora deprecata e non se ne consiglia l'uso. Naturalmente, potresti ancora incontrarlo nel codice, nei parametri del metodo o nei costruttori di classi.
Fin dall'inizio, inizieremo a imparare come lavorare con i file usando la Path
classe. Path
è la classe che ha sostituito File
. È più sicuro ed efficiente.
Path
classe
Tecnicamente, Path
non è una classe, è un'interfaccia. Questo viene fatto per consentire la scrittura di un discendente della Path
classe per ogni sistema operativo (e file system).
Windows ha uno standard per la scrittura dei percorsi dei file e Linux ne ha un altro. Naturalmente, ci sono molti altri sistemi operativi nel mondo e ognuno ha il proprio standard.
Ecco perché l' Path
interfaccia è usata ovunque nei metodi che lavorano con i file, anche se in realtà il lavoro avviene attraverso le sue classi discendenti: WindowsPath
, UnixPath
, ...
Creazione di un Path
oggetto
Per creare un Path
oggetto (che sarà effettivamente un oggetto della WindowsPath
classe discendente), è necessario utilizzare un'istruzione come questa:
Path name = Path.of(path);
Dove name
è il nome di una Path
variabile ed path
è il percorso del file (o directory) incluso il nome del file (o directory). Ed of
è un metodo statico della Path
classe.
Il of()
metodo viene utilizzato per creare WindowsPath
oggetti se il programma è in esecuzione su Windows. Se il programma è in esecuzione su Linux, UnixPath
vengono creati gli oggetti. Non puoi creare un Path
oggetto usando codice come .new Path()
Esempi:
Codice | Nota |
---|---|
|
Percorso del file |
|
Percorso della directory |
Non è necessario che il file (o la directory) esista affinché Path
esista un oggetto valido. Forse vuoi solo creare un file... Un Path
oggetto è come un truccato String
: non è legato a un file specifico su disco - memorizza solo un certo percorso su disco. Questo è tutto.
2. Metodi del Path
tipo
L' Path
interfaccia ha alcuni metodi interessanti. I più interessanti sono presentati nella tabella sottostante.
Metodo | Descrizione |
---|---|
|
Restituisce la directory principale |
|
Restituisce il nome del file senza la directory |
|
Restituisce la directory radice da un percorso |
|
Controlla se il percorso corrente è assoluto |
|
Converte il percorso in assoluto |
|
Rimuove i caratteri jolly in un nome di directory. |
|
Costruisce un nuovo percorso assoluto da percorsi assoluti e relativi. |
|
Ottiene un percorso relativo da due percorsi assoluti. |
|
Controlla se il percorso corrente inizia con un determinato percorso |
|
Controlla se il percorso corrente termina con un determinato percorso |
|
Divide il percorso in parti usando / come delimitatore. Restituisce il numero di parti. |
|
Divide il percorso in parti usando / come delimitatore. Restituisce una parte in base al relativo indice. |
|
Divide il percorso in parti usando / come delimitatore. Restituisce il sottopercorso che corrisponde all'intervallo specificato. |
|
Converte un oggetto in un oggetto Path deprecatoFile |
|
Converte un Path oggetto in un URI oggetto |
Di seguito una breve descrizione delle modalità esistenti.
3. Dividere un percorso in parti
Il getParent()
metodo restituisce il percorso che punta alla directory padre per il percorso corrente. Indipendentemente dal fatto che questo percorso sia una directory o un file:
Codice | Valore |
---|---|
|
|
|
|
|
|
Il getFileName()
metodo restituisce un singolo nome di file (o directory), qualunque cosa venga dopo l'ultimo delimitatore:
Codice | Valore |
---|---|
|
|
|
|
|
|
Il getRoot()
metodo restituisce il percorso della directory principale:
Codice | Valore |
---|---|
|
|
4. Percorsi assoluti e relativi
Esistono due tipi di percorsi: assoluto e relativo. Un percorso assoluto inizia dalla directory principale. Per Windows, questa potrebbe essere la c:\
cartella; per Linux — la /
directory
Un percorso relativo è significativo rispetto a qualche directory. Cioè, è come la fine della strada, ma senza l'inizio. Puoi trasformare un percorso relativo in un percorso assoluto e viceversa
boolean isAbsolute()
metodo
Il metodo controlla se il percorso corrente è assoluto
Codice | Valore |
---|---|
|
|
|
|
Path toAbsolutePath()
metodo
Converte il percorso in assoluto. Se necessario, vi aggiunge la directory di lavoro corrente:
Codice | Valore |
---|---|
|
|
|
|
Path normalize()
metodo
Nel percorso, invece del nome di una directory, puoi scrivere "..", che significa tornare indietro di una directory . La normalizzazione elimina queste cose. Esempi:
Codice | Valore |
---|---|
|
|
|
|
Path relativize(Path other)
metodo
Il relativize()
metodo consente di costruire le "differenze tra percorsi": un percorso relativo a un altro
Codice | Valore |
---|---|
|
|
|
|
|
IllegalArgumentException: i due percorsi hanno una "radice" diversa (dischi diversi) |
Path resolve(Path other)
metodo
Il resolve()
metodo fa l'opposto di relativize()
: costruisce un nuovo percorso assoluto da un percorso assoluto e uno relativo.
Codice | Valore |
---|---|
|
|
|
|
toFile()
metodo
Il metodo restituisce un File
oggetto deprecato che memorizza lo stesso percorso file dell'oggetto Path
.
toURI()
metodo
Il metodo converte il percorso in un URI standard e restituisce un oggetto che contiene il percorso del file:
Percorso del file | URI del file |
---|---|
|
|
GO TO FULL VERSION