1. Pathklasse
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 Fileog FileInputStreamtil at arbejde med filer. Klassen er dog Filenu 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. Pather den klasse, der erstattede File. Det er mere sikkert og mere effektivt.
Pathklasse
Teknisk set Pather det ikke en klasse - det er en grænseflade. Dette gøres for at tillade skrivning af en efterkommer af Pathklassen 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, Pathgrænsefladen bruges overalt i de metoder, der arbejder med filer, selvom arbejdet i virkeligheden foregår gennem dens efterkommerklasser: WindowsPath, UnixPath, ...
Oprettelse af et Pathobjekt
For at oprette et Pathobjekt (som faktisk vil være et objekt af efterkommerklassen WindowsPath), skal du bruge en sætning som denne:
Path name = Path.of(path);
Hvor nameer navnet på en Pathvariabel, og pather stien til filen (eller mappen) inklusive navnet på filen (eller mappen). Og ofer en statisk metode i Pathklassen.
Metoden of()bruges til at oprette WindowsPathobjekter, hvis programmet kører på Windows. Hvis programmet kører på Linux, UnixPathoprettes objekter. Du kan ikke oprette et Pathobjekt 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 Pathobjekt eksisterer. Måske vil du bare oprette en fil... Et Pathobjekt 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 Pathtypen
Grænsefladen Pathhar 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 Pathobjekt til et forældet Fileobjekt |
|
Konverterer et Pathobjekt til et URIobjekt |
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 Fileobjekt, der gemmer den samme filsti som Pathobjektet.
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