1. Path
osztály
Ha olyan programot akarunk írni, amely a lemezen lévő fájlokkal csinál valamit, az elég egyszerű. A Java számos osztályt tartalmaz, amelyek segítenek magukkal a fájlokkal és azok tartalmával való munkavégzésben.
A Java korai verziói olyan osztályokat használtak, mint a File
és FileInputStream
a fájlokkal való munkavégzés. Az osztály azonban File
már elavult, és nem javasolt a használata. Természetesen továbbra is találkozhat vele a kódban, a metódusparaméterekben vagy az osztálykonstruktorokban.
Kezdettől fogva elkezdjük megtanulni, hogyan kell a fájlokkal dolgozni az Path
osztály segítségével. Path
az az osztály, amely a File
. Biztonságosabb és hatékonyabb.
Path
osztály
Technikailag Path
nem egy osztály – ez egy interfész. Path
Ez azért történik, hogy minden operációs rendszerhez (és fájlrendszerhez) lehessen írni az osztály leszármazottját .
A Windows egy szabványt tartalmaz a fájl elérési útjainak írására, a Linux pedig egy másikat. Természetesen sok más operációs rendszer is létezik a világon, és mindegyiknek megvan a maga szabványa.
Ezért a Path
felületet mindenhol használják a fájlokkal dolgozó metódusokban, pedig a valóságban a munka a leszármazott osztályokon keresztül történik: WindowsPath
, UnixPath
, ...
Path
Objektum létrehozása
Egy objektum létrehozásához Path
(amely valójában a leszármazott osztály objektuma lesz WindowsPath
), egy ehhez hasonló utasítást kell használnia:
Path name = Path.of(path);
Ahol name
egy változó neve Path
, és path
a fájl (vagy könyvtár) elérési útja, beleértve a fájl (vagy könyvtár) nevét. És of
az osztály statikus metódusa Path
.
Ez a of()
módszer objektumok létrehozására szolgál, WindowsPath
ha a program Windows rendszeren fut. Ha a program Linuxon fut, akkor UnixPath
objektumok jönnek létre. Nem hozhat létre Path
objektumot olyan kóddal, mint a .new Path()
Példák:
Kód | jegyzet |
---|---|
|
A fájl elérési útja |
|
Útvonal a könyvtárhoz |
A fájlnak (vagy könyvtárnak) nem kell léteznie egy érvényes Path
objektum létezéséhez. Lehet, hogy csak egy fájlt szeretne létrehozni... Egy Path
objektum olyan, mint egy összerakott String
: nincs hozzákötve egy adott fájlhoz a lemezen – csak egy bizonyos elérési utat tárol a lemezen. Ez az.
Path
2. A típus módszerei
A Path
felületnek jó néhány érdekes módszere van. A legérdekesebbeket az alábbi táblázat mutatja be.
Módszer | Leírás |
---|---|
|
Visszaadja a szülőkönyvtárat |
|
A fájlnevet adja vissza a könyvtár nélkül |
|
Egy elérési út gyökérkönyvtárát adja vissza |
|
Ellenőrzi, hogy az aktuális út abszolút-e |
|
Az utat abszolúttá alakítja |
|
Eltávolítja a helyettesítő karaktereket a könyvtárnévből. |
|
Új abszolút útvonalat hoz létre abszolút és relatív útvonalakból. |
|
Relatív útvonalat kap két abszolút útból. |
|
Ellenőrzi, hogy az aktuális útvonal egy adott útvonallal kezdődik-e |
|
Ellenőrzi, hogy az aktuális útvonal egy adott útvonallal végződik-e |
|
/ Határolóként használva részekre osztja az útvonalat . Az alkatrészek számát adja vissza. |
|
/ Határolóként használva részekre osztja az útvonalat . Egy alkatrészt az indexével tér vissza. |
|
/ Határolóként használva részekre osztja az útvonalat . Az adott intervallumnak megfelelő alútvonalat adja vissza. |
|
Egy Path objektumot elavult objektummá File alakít át |
|
Objektumot Path objektummá alakít átURI |
Az alábbiakban röviden ismertetjük a meglévő módszereket.
3. Út felosztása részekre
A getParent()
metódus azt az elérési utat adja vissza, amely az aktuális elérési út szülőkönyvtárára mutat. Függetlenül attól, hogy ez az útvonal könyvtár vagy fájl:
Kód | Érték |
---|---|
|
|
|
|
|
|
A getFileName()
metódus egyetlen fájl (vagy könyvtár) nevet ad vissza – függetlenül attól, ami az utolsó határoló után következik:
Kód | Érték |
---|---|
|
|
|
|
|
|
A getRoot()
metódus visszaadja a gyökérkönyvtár elérési útját:
Kód | Érték |
---|---|
|
|
4. Abszolút és relatív utak
Kétféle út létezik: abszolút és relatív. Egy abszolút elérési út a gyökérkönyvtárból indul. Windows esetén ez lehet a c:\
mappa; Linux esetén a /
könyvtár
A relatív elérési út valamilyen könyvtárhoz képest értelmes. Vagyis olyan, mint az út vége, de eleje nélkül. A relatív útvonalat abszolút úttá alakíthatja, és fordítva
boolean isAbsolute()
módszer
A metódus ellenőrzi, hogy az aktuális út abszolút-e
Kód | Érték |
---|---|
|
|
|
|
Path toAbsolutePath()
módszer
Az utat abszolúttá alakítja. Ha szükséges, hozzáadja az aktuális munkakönyvtárat:
Kód | Érték |
---|---|
|
|
|
|
Path normalize()
módszer
Az elérési útba a könyvtárnév helyett írhat ".."-t, ami azt jelenti, hogy egy könyvtárat kell visszalépni . A normalizálás megszünteti ezeket a dolgokat. Példák:
Kód | Érték |
---|---|
|
|
|
|
Path relativize(Path other)
módszer
A relativize()
módszer lehetővé teszi az „útvonalak közötti különbségek” megalkotását: az egyik útvonalat a másikhoz viszonyítva
Kód | Érték |
---|---|
|
|
|
|
|
IllegalArgumentException: a két útvonalnak más a "gyökere" (különböző lemezek) |
Path resolve(Path other)
módszer
A resolve()
módszer az ellenkezőjét teszi relativize()
: új abszolút utat épít fel egy abszolút és egy relatív útból.
Kód | Érték |
---|---|
|
|
|
|
toFile()
módszer
A metódus egy elavult File
objektumot ad vissza, amely ugyanazt a fájl elérési utat tárolja, mint az Path
objektum.
toURI()
módszer
A metódus átalakítja az elérési utat egy szabványos URI- vé , és visszaad egy objektumot, amely tartalmazza a fájl elérési útját:
A fájl elérési útja | URI a fájlhoz |
---|---|
|
|