1. Path
klasse
Hvis du vil skrive et program, der gør noget med filer på disk, er det ret nemt. Java har en masse klasser, der hjælper dig med at arbejde med både selve filerne og deres indhold.
Tidlige versioner af Java brugte klasser som File
og FileInputStream
til at arbejde med filer. Klassen er dog File
nu forældet og anbefales ikke til brug. Selvfølgelig kan du stadig støde på det i kode, metodeparametre eller klassekonstruktører.
Lige fra starten begynder vi at lære, hvordan man arbejder med filer ved hjælp af klassen Path
. Path
er den klasse, der erstattede File
. Det er mere sikkert og mere effektivt.
Path
klasse
Teknisk set Path
er det ikke en klasse - det er en grænseflade. Dette gøres for at tillade skrivning af en efterkommer af Path
klassen for hvert operativsystem (og filsystem).
Windows har én standard til at skrive filstier, og Linux har en anden. Selvfølgelig er der mange andre operativsystemer i verden, og hver har sin egen standard.
Det er derfor, Path
grænsefladen bruges overalt i de metoder, der arbejder med filer, selvom arbejdet i virkeligheden foregår gennem dens efterkommerklasser: WindowsPath
, UnixPath
, ...
Oprettelse af et Path
objekt
For at oprette et Path
objekt (som faktisk vil være et objekt af efterkommerklassen WindowsPath
), skal du bruge en sætning som denne:
Path name = Path.of(path);
Hvor name
er navnet på en Path
variabel, og path
er stien til filen (eller mappen) inklusive navnet på filen (eller mappen). Og of
er en statisk metode i Path
klassen.
Metoden of()
bruges til at oprette WindowsPath
objekter, hvis programmet kører på Windows. Hvis programmet kører på Linux, UnixPath
oprettes objekter. Du kan ikke oprette et Path
objekt ved hjælp af kode som .new Path()
Eksempler:
Kode | Bemærk |
---|---|
|
Stien til filen |
|
Sti til mappen |
Filen (eller mappen) behøver ikke at eksistere for at et gyldigt Path
objekt eksisterer. Måske vil du bare oprette en fil... Et Path
objekt er som et opskruet objekt String
: det er ikke bundet til en bestemt fil på disken - det gemmer bare en bestemt sti på disken. Det er det.
2. Metoder af Path
typen
Grænsefladen Path
har en del interessante metoder. De mest interessante er præsenteret i tabellen nedenfor.
Metode | Beskrivelse |
---|---|
|
Returnerer den overordnede mappe |
|
Returnerer filnavnet uden mappen |
|
Returnerer rodmappen fra en sti |
|
Kontrollerer, om den aktuelle sti er absolut |
|
Konverterer stien til absolut |
|
Fjerner jokertegn i et mappenavn. |
|
Konstruerer en ny absolut vej fra absolutte og relative stier. |
|
Får en relativ sti fra to absolutte stier. |
|
Kontrollerer, om den aktuelle sti starter med en given sti |
|
Kontrollerer, om den aktuelle sti ender med en given sti |
|
Opdeler stien i dele ved hjælp / af en afgrænsning. Returnerer antallet af dele. |
|
Opdeler stien i dele ved hjælp / af en afgrænsning. Returnerer en del efter dens indeks. |
|
Opdeler stien i dele ved hjælp / af en afgrænsning. Returnerer den understi, der svarer til det givne interval. |
|
Konverterer et Path objekt til et forældet File objekt |
|
Konverterer et Path objekt til et URI objekt |
Nedenfor er en kort beskrivelse af de eksisterende metoder.
3. Opdeling af en sti i dele
Metoden getParent()
returnerer stien, der peger på det overordnede bibliotek for den aktuelle sti. Uanset om denne sti er en mappe eller en fil:
Kode | Værdi |
---|---|
|
|
|
|
|
|
Metoden getFileName()
returnerer et enkelt fil- (eller mappenavn) - hvad end der kommer efter den sidste afgrænser:
Kode | Værdi |
---|---|
|
|
|
|
|
|
Metoden getRoot()
returnerer stien til rodmappen:
Kode | Værdi |
---|---|
|
|
4. Absolutte og relative veje
Der er to typer stier: absolut og relativ. En absolut sti starter fra rodmappen. For Windows kan dette være c:\
mappen; for Linux — /
biblioteket
En relativ sti er meningsfuld i forhold til en eller anden mappe. Det vil sige, at det er som enden af vejen, men uden begyndelsen. Du kan gøre en relativ sti til en absolut sti og omvendt
boolean isAbsolute()
metode
Metoden kontrollerer, om den aktuelle sti er absolut
Kode | Værdi |
---|---|
|
|
|
|
Path toAbsolutePath()
metode
Konverterer stien til absolut. Tilføj om nødvendigt den aktuelle arbejdsmappe til den:
Kode | Værdi |
---|---|
|
|
|
|
Path normalize()
metode
I stien, i stedet for et biblioteksnavn, kan du skrive "..", hvilket betyder gå en mappe tilbage . Normalisering eliminerer disse ting. Eksempler:
Kode | Værdi |
---|---|
|
|
|
|
Path relativize(Path other)
metode
Metoden relativize()
lader dig konstruere "forskellene mellem stier": en sti i forhold til en anden
Kode | Værdi |
---|---|
|
|
|
|
|
UlovligArgumentundtagelse: de to stier har en forskellig "rod" (forskellige diske) |
Path resolve(Path other)
metode
Metoden resolve()
gør det modsatte af relativize()
: den bygger en ny absolut vej ud fra en absolut og en relativ vej.
Kode | Værdi |
---|---|
|
|
|
|
toFile()
metode
Metoden returnerer et forældet File
objekt, der gemmer den samme filsti som Path
objektet.
toURI()
metode
Metoden konverterer stien til en standard- URI og returnerer et objekt, der indeholder stien til filen:
Stien til filen | URI til filen |
---|---|
|
|
GO TO FULL VERSION