1. Path
клас
Ако искате да напишете програма, която прави нещо с файлове на диска, това е доста лесно. Java има много класове, които ви помагат да работите Howто със самите файлове, така и с тяхното съдържание.
Ранните версии на Java използваха класове като File
и FileInputStream
за работа с файлове. Класът обаче File
вече е остарял и не се препоръчва за използване. Разбира се, все още може да го срещнете в code, параметри на метод or конструктори на класове.
Още от самото начало ще започнем да се учим How да работим с файлове с помощта на Path
класа. Path
е класът, който замени File
. Той е по-безопасен и по-ефикасен.
Path
клас
Технически, Path
не е клас - това е интерфейс. Това се прави, за да се позволи записването на наследник на Path
класа за всяка операционна система (и файлова система).
Windows има един стандарт за писане на пътеки към файлове, а Linux има друг. Разбира се, в света има много други операционни системи и всяка има свой собствен стандарт.
Ето защо Path
интерфейсът се използва навсякъде в методите, които работят с файлове, въпреки че в действителност работата се случва чрез неговите наследствени класове: WindowsPath
, UnixPath
, ...
Създаване на Path
обект
За да създадете Path
обект (който всъщност ще бъде обект на WindowsPath
класа наследник), трябва да използвате израз като този:
Path name = Path.of(path);
Къде name
е името на Path
променлива и path
е пътят до file (or директорията), включително името на file (or директорията). И of
е статичен метод на Path
класа.
Методът of()
се използва за създаване на WindowsPath
обекти, ако програмата работи под Windows. Ако програмата работи на Linux, тогава UnixPath
се създават обекти. Не можете да създадете Path
обект с помощта на code като .new Path()
Примери:
Код | Забележка |
---|---|
|
Път до file |
|
Път до директорията |
Не е необходимо файлът (or директорията) да съществува, за Path
да съществува валиден обект. Може би просто искате да създадете файл... Path
Обектът е като разширен String
: той не е свързан с конкретен файл на диска — той просто съхранява определен път на диска. Това е.
2. Методи от Path
вида
Интерфейсът Path
има доста интересни методи. Най-интересните са представени в tableта по-долу.
Метод | Описание |
---|---|
|
Връща родителската директория |
|
Връща името на file без директорията |
|
Връща основната директория от път |
|
Проверява дали текущият път е абсолютен |
|
Преобразува пътя в абсолютен |
|
Премахва заместващи знаци в име на директория. |
|
Конструира нов абсолютен път от абсолютни и относителни пътища. |
|
Получава относителен път от два абсолютни пътя. |
|
Проверява дали текущият път започва с даден път |
|
Проверява дали текущият път завършва с даден път |
|
Разделя пътя на части, използвайки / като разделител. Връща броя на частите. |
|
Разделя пътя на части, използвайки / като разделител. Връща част по нейния индекс. |
|
Разделя пътя на части, използвайки / като разделител. Връща подпътеката, която съответства на дадения интервал. |
|
Преобразува Path обект в отхвърлен File обект |
|
Преобразува Path обект в URI обект |
По-долу е дадено кратко описание на съществуващите методи.
3. Разделяне на път на части
Методът getParent()
връща пътя, който сочи към родителската директория за текущия път. Независимо дали този път е директория or файл:
Код | Стойност |
---|---|
|
|
|
|
|
|
Методът getFileName()
връща едно име на файл (or директория) - Howвото и да идва след последния разделител:
Код | Стойност |
---|---|
|
|
|
|
|
|
Методът getRoot()
връща пътя до основната директория:
Код | Стойност |
---|---|
|
|
4. Абсолютни и относителни пътища
Има два вида пътища: абсолютни и относителни. Абсолютният път започва от основната директория. За Windows това може да е c:\
папката; за Linux — /
директорията
Относителният път е значим спрямо няHowва директория. Тоест, това е като края на пътя, но без начало. Можете да превърнете относителен път в абсолютен и обратно
boolean isAbsolute()
метод
Методът проверява дали текущият път е абсолютен
Код | Стойност |
---|---|
|
|
|
|
Path toAbsolutePath()
метод
Преобразува пътя в абсолютен. Ако е необходимо, добавя текущата работна директория към нея:
Код | Стойност |
---|---|
|
|
|
|
Path normalize()
метод
В пътя, instead of име на директория, можете да напишете "..", което означава връщане една директория назад . Нормализирането премахва тези неща. Примери:
Код | Стойност |
---|---|
|
|
|
|
Path relativize(Path other)
метод
Методът relativize()
ви позволява да конструирате "разликите между пътищата": един път спрямо друг
Код | Стойност |
---|---|
|
|
|
|
|
IllegalArgumentException: двата пътя имат различен "корен" (различни дискове) |
Path resolve(Path other)
метод
Методът resolve()
прави обратното на relativize()
: той изгражда нов абсолютен път от абсолютен и относителен път.
Код | Стойност |
---|---|
|
|
|
|
toFile()
метод
Методът връща остарял File
обект, който съхранява същия файлов път като Path
обекта.
toURI()
метод
Методът преобразува пътя в standardн URI и връща обект, който съдържа пътя към file:
Път до file | URI към file |
---|---|
|
|
GO TO FULL VERSION