1. Path klasi
Agar siz diskdagi fayllar bilan nimadir qiladigan dastur yozmoqchi bo'lsangiz, bu sizda juda oson bo'ladi. Java da juda ko'p klasslar bor, ular sizga fayllar va ularning mazmuni bilan ishlashda yordam beradi.
Ilk Java versiyalarida fayllar bilan ish qilish uchun File va FileInputStream kabi klasslar ishlatilgan. Ammo hozir File klassi eskirgan hisoblanadi va uni ishlatish tavsiya etilmaydi. Siz hali ham uni kodda, metod parametrlari yoki klass konstruktlarida uchratishingiz mumkin.
Biz fayllar bilan ishlashni to'g'ridan-to'g'ri Path klassidan boshlaymiz. Path — bu File o'rniga kelgan klass. U bilan ishlash xavfsizroq va samaraliroq.
Path klasi
Texnik jihatdan Path — bu klass emas, interfeys. Bu har bir operatsion (va fayl) tizim uchun o'z Path merosxo'r klassini yozish imkonini yaratish uchun shunday qilingan.
Windowsda fayl yo‘llarini yozishning o‘z standartlari bor, Linuxda esa o‘ziga xos. Dunyo bo'ylab yana ko'plab operatsion tizimlar bor, va har birida - o'z standartlari.
Shu sababli, fayllar bilan ishlash uchun metodlarda Path interfeysi ko'rsatilgan, lekin haqiqiy ish uning merosxo'r klasslari bilan amalga oshiriladi: WindowsPath, UnixPath, ...
Path obyektini yaratish
Path obyektini yaratish uchun (aslida bu WindowsPath merosxo'r klassi obyekti bo'ladi), quyidagi ko'rinishdagi buyruqdan foydalanish kerak:
Path nom = Path.of(yo'l);
Bu yerda nom — bu Path tipidagi o'zgaruvchi nomi. yo'l — bu fayl (yoki katalog) nomi bilan birga yo'l. of esa Path klassining statik metodi.
of() metodi Windowsda ishlayotgan dasturda WindowsPath obyekti yaratish uchun ishlatiladi, Linuxda esa UnixPath obyekti. Siz Path tipidagi obyekt yaratishingiz mumkin emas, masalan, new Path() ko'di orqali.
Misollar:
| Kod | Izoh |
|---|---|
|
Faylga yo'l |
|
Katalogga yo'l |
Fayl (yoki katalog) mavjud bo'lishi shart emas, shunchaki Path tipidagi obyekt mavjud bo'lishi mumkin. Balki siz faqat fayl yaratmoqchisiz... Path tipidagi obyekt — bu String tipining ilg'or versiyasi kabi — u diskdagi aniq bir faylga bog'liq emas: u faqat diskdagi yo'lni saqlaydi va hammasi.
2. Path tipidagi metodlar
Path interfeysida juda ko'p qiziqarli metodlar mavjud. Eng qiziqarli metodlar quyidagi jadvalda keltirilgan.
| Metod | Tavsif |
|---|---|
|
Bu metod ota katalogni qaytaradi |
|
Katalogsiz fayl nomini qaytaradi |
|
Yo'ldan ildiz katalogini qaytaradi |
|
Joriy yo‘lning mutlaq ekanligini tekshiradi |
|
Yo‘lni mutlaq qabul qiladi |
|
Katalog nomidagi naqshlarni olib tashlaydi. |
|
Mutlaq va nisbiy yo‘ldan yangi mutlaq yo‘lni hosil qiladi. |
|
Ikki mutlaq yo‘ldan nisbiy yo‘lni oladi. |
|
Joriy yo‘l boshlanayotganligini tekshiradi |
|
Joriy yo‘l tugayotganini tekshiradi |
|
Yo‘lni / ajratgich bilan qismlarga ajratadi.Qismlar sonini qaytaradi. |
|
Yo‘lni / ajratgich bilan qismlarga ajratadi.Uning raqamiga qarab qismni qaytaradi. |
|
Yo‘lni / ajratgich bilan qismlarga ajratadi.Berilgan intervall bo'yicha yo‘lning qismini qaytaradi. |
|
Obyektni o‘zgartiradi Path eski File obyektiga |
|
Obyektni Path ni obyekti URI turiga o‘zgartiradi |
Quyida mavjud metodlar bo‘yicha qisqacha izohlar berilgan.
3. Yo'lni qismlarga bo'linish
Metod getParent() joriy yo‘l uchun ota katalogni ko‘rsatadi. Yo‘l katalog yoki fayl ekanligidan qat'i nazar:
| Kod | Qiymat |
|---|---|
|
|
|
|
|
|
Metod getFileName() bir fayl nomini (yoki katalog nomini) qaytaradi — oxirgi ajratgichdan keyin keladi:
| Kod | Qiymat |
|---|---|
|
|
|
|
|
|
Metod getRoot() ildiz katalogga yo‘lni qaytaradi:
| Kod | Qiymat |
|---|---|
|
|
4. Mutlaq va nisbiy yo‘llar
Yo‘llar ikki turga bo‘linadi: mutlaq va nisbiy. Mutlaq yo‘l ildiz katalogdan boshlanadi. Windows uchun bu c:\ papkasi bo‘lishi mumkin, Linux uchun esa / katalogi
Nisbiy yo‘l qandaydir katalogga nisbatan hisoblanadi. Ya'ni, bu yo'lning oxiri, lekin faqat boshlanishi bo'lmasdan. Nisbiy yo'lni mutlaq yo'lga va aksincha o'zgartirish mumkin
Metod boolean isAbsolute()
Metod joriy yo‘lning mutlaq ekanligini tekshiradi
| Kod | Qiymat |
|---|---|
|
|
|
|
Metod Path toAbsolutePath()
Agar kerak bo‘lsa, yo‘lni mutlaqga aylantiradi — unga joriy ishchi katalogni qo‘shadi:
| Kod | Qiymat |
|---|---|
|
|
|
|
Metod Path normalize()
Yo‘lning nomi o‘rniga “..” ni yozish mumkin, bu bir katalog orqaga qaytishni anglatadi. Normallashgan yo‘llar bunday narsalarni buzadi. Misollar:
| Kod | Qiymat |
|---|---|
|
|
|
|
Metod Path relativize(Path other)
Metod relativize() “yo‘llar farqini” hisoblash imkonini beradi: boshqa yo‘lga nisbatan bir yo‘l
| Kod | Qiymat |
|---|---|
|
|
|
|
|
Exception IllegalArgumentException: ikkita yo‘llar turli “ildiz”larga ega (turli disklar) |
Metod Path resolve(Path other)
Metod resolve() aksincha relativize() amalni bajaradi: mutlaq va nisbiy yo‘llardan yangi mutlaq yo‘lni hosil qiladi.
| Kod | Qiymat |
|---|---|
|
|
|
|
Metod toFile()
Bu metod eski File obyektini qaytaradi, u Path obyektida saqlanayotgan bir xil fayl yo‘lini o‘z ichiga oladi.
Metod toURI()
Metod yo‘lni URI standarti bo‘yicha o'zgartiradi, obyektni qaytaradi, u fayl yo'lini o'z ichiga oladi:
| Fayl yo'li | Fayl URI |
|---|---|
|
|
GO TO FULL VERSION