1 klasaPath
Jeśli chcesz napisać program, który robi coś z plikami na dysku, możesz to zrobić bardzo łatwo. Java ma wiele klas, które pomagają pracować zarówno z samymi plikami, jak iz ich zawartością.
Wczesne wersje Javy wykorzystywały klasy takie jak File
i FileInputStream
. Ale teraz klasa File
jest przestarzała, a jej użycie jest przestarzałe. Możesz oczywiście zobaczyć to również w kodzie, parametrach metod lub konstruktorach klas.
Naukę pracy z plikami zaczniemy od samego początku Path
. Path
jest klasą, która zastąpiła File
. Praca z nim jest bezpieczniejsza i wydajniejsza.
KlasaPath
Technicznie Path
nie jest to klasa, ale interfejs. Odbywa się to po to, abyś mógł napisać własnego dziedzica klasy do każdego systemu operacyjnego (i plików) Path
.
Windows ma swoje własne standardy zapisywania ścieżek plików, Linux ma swoje własne. Ale na świecie wciąż istnieje wiele systemów operacyjnych, a każdy z nich ma swoje własne standardy.
Dlatego interfejs jest określony wszędzie w metodach pracy z plikami Path
, ale w rzeczywistości praca przebiega z jego klasami potomnymi: WindowsPath
, UnixPath
, ...
Utwórz obiektPath
Aby utworzyć obiekt Path
(w rzeczywistości będzie to obiekt klasy pochodnej - WindowsPath
), należy użyć polecenia formularza:
Path Nazwa = Path.of(путь);
Gdzie Nazwa
jest nazwą zmiennej typu Path
. путь
to ścieżka do pliku (lub katalogu) wraz z nazwą pliku (lub katalogu). A of
jest metodą klasy statycznej Path
.
Metoda of()
służy do tworzenia obiektów typu, WindowsPath
jeśli program jest uruchamiany w systemie Windows, a jeśli program jest uruchamiany w systemie Linux, obiekty UnixPath
. Nie można utworzyć obiektu typu Path
za pomocą kodu widoku .new Path()
Przykłady:
Kod | Notatka |
---|---|
|
Ścieżka do pliku |
|
Ścieżka katalogu |
Plik (lub katalog) nie musi istnieć dla prawidłowego obiektu typu Path
. Może po prostu chcesz utworzyć plik... Obiekt typu Path
jest jak zaawansowana wersja typu String
- nie jest powiązany z konkretnym plikiem na dysku: po prostu przechowuje ścieżkę na dysku i to wszystko.
2. Wpisz metodyPath
Interfejs Path
ma całkiem sporo ciekawych metod. Najciekawsze przedstawia poniższa tabela.
metoda | Opis |
---|---|
|
Zwraca katalog nadrzędny |
|
Zwraca nazwę pliku bez katalogu |
|
Zwraca katalog główny ze ścieżki |
|
Sprawdza, czy bieżąca ścieżka jest bezwzględna |
|
Konwertuje ścieżkę na wartość bezwzględną |
|
Usuwa symbole wieloznaczne w nazwie katalogu. |
|
Tworzy nową ścieżkę bezwzględną ze ścieżki bezwzględnej i ścieżki względnej. |
|
Pobiera ścieżkę względną z dwóch ścieżek bezwzględnych. |
|
Sprawdza, czy bieżąca ścieżka zaczyna się od ścieżki |
|
Sprawdza, czy bieżąca ścieżka kończy się na path |
|
Dzieli ścieżkę na części za pomocą ogranicznika / . Zwraca liczbę części. |
|
Dzieli ścieżkę na części za pomocą ogranicznika / . Zwraca część według jej numeru. |
|
Dzieli ścieżkę na części za pomocą ogranicznika / . Zwraca część ścieżki określoną przez interwał. |
|
Konwertuje obiekt Path na przestarzały obiektFile |
|
Konwertuje obiekt Path na obiekt typuURI |
Poniżej znajduje się krótki opis istniejących metod.
3. Podział ścieżki na części
Metoda getParent()
zwraca ścieżkę wskazującą katalog nadrzędny dla bieżącej ścieżki. Niezależnie od tego, czy ta ścieżka była katalogiem, czy plikiem:
Kod | Oznaczający |
---|---|
|
|
|
|
|
|
Metoda getFileName()
zwraca pojedynczą nazwę pliku (lub katalogu) — cokolwiek następuje po ostatnim ograniczniku:
Kod | Oznaczający |
---|---|
|
|
|
|
|
|
Metoda getRoot()
zwraca ścieżkę do katalogu głównego:
Kod | Oznaczający |
---|---|
|
|
4. Ścieżki bezwzględne i względne
Istnieją dwa rodzaje ścieżek: bezwzględna i względna. Ścieżka bezwzględna zaczyna się od katalogu głównego. W systemie Windows może to być folder c:\
, w systemie Linux może to być katalog/
Ścieżka względna jest uważana za względną w stosunku do jakiegoś katalogu. Te. to jak koniec drogi, ale bez początku. Ścieżkę względną można zmienić na ścieżkę bezwzględną i odwrotnie
metodaboolean isAbsolute()
Metoda sprawdza, czy bieżąca ścieżka jest bezwzględna
Kod | Oznaczający |
---|---|
|
|
|
|
metodaPath toAbsolutePath()
W razie potrzeby zamienia ścieżkę na bezwzględną - dodaje do niej bieżący katalog roboczy:
Kod | Oznaczający |
---|---|
|
|
|
|
metodaPath normalize()
W ścieżce zamiast nazwy katalogu można napisać „..”, a to oznacza powrót o jeden katalog z powrotem. Normalizacja eliminuje te rzeczy. Przykłady:
Kod | Oznaczający |
---|---|
|
|
|
|
metodaPath relativize(Path other)
Metoda relativize()
pozwala obliczyć „różnicę ścieżek”: jedną ścieżkę względem drugiej
Kod | Oznaczający |
---|---|
|
|
|
|
|
Błąd IllegalArgumentException: dwie ścieżki mają inny „root” (różne dyski) |
metodaPath resolve(Path other)
Metoda resolve()
wykonuje operację odwrotną relativize()
: buduje nową ścieżkę bezwzględną ze ścieżki bezwzględnej i względnej.
Kod | Oznaczający |
---|---|
|
|
|
|
metodatoFile()
Metoda zwraca nieaktualny obiekt File
, który przechowuje tę samą ścieżkę do pliku co Path
.
metodatoURI()
Metoda konwertuje ścieżkę na standard URI , zwraca obiekt zawierający ścieżkę do pliku:
Ścieżka do pliku | URI do pliku |
---|---|
|
|
GO TO FULL VERSION