1. Pathosztá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 FileInputStreama fájlokkal való munkavégzés. Az osztály azonban Filemá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 Pathosztály segítségével. Pathaz az osztály, amely a File. Biztonságosabb és hatékonyabb.
Pathosztály
Technikailag Pathnem egy osztály – ez egy interfész. PathEz 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 Pathfelü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, ...
PathObjektum 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 nameegy változó neve Path, és patha fájl (vagy könyvtár) elérési útja, beleértve a fájl (vagy könyvtár) nevét. És ofaz osztály statikus metódusa Path.
Ez a of()módszer objektumok létrehozására szolgál, WindowsPathha a program Windows rendszeren fut. Ha a program Linuxon fut, akkor UnixPathobjektumok jönnek létre. Nem hozhat létre Pathobjektumot 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 Pathobjektum létezéséhez. Lehet, hogy csak egy fájlt szeretne létrehozni... Egy Pathobjektum 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.
Path2. A típus módszerei
A Pathfelü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 Pathobjektumot elavult objektummá Filealakít át |
|
Objektumot Pathobjektummá 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 Fileobjektumot ad vissza, amely ugyanazt a fájl elérési utat tárolja, mint az Pathobjektum.
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 |
|---|---|
|
|
GO TO FULL VERSION