1. Sinif Files
Fayllarla işləmək üçün əla bir utilitar sinif var — java.nio.file.Files
. Bu sinifdə hər vəziyyət üçün metodlar mövcuddur. Bu sinifin bütün metodları statikdir və Path tipli obyektlərlə işləyir. Metodlar çoxdur, ona görə də biz yalnız əsaslarını nəzərdən keçirəcəyik:
Metod | Təsviri |
---|---|
|
Yeni fayl yaradır path ilə |
|
Yeni direktoriyanı yaradır |
|
Birkaç direktoriyanı yaradır |
|
Müvəqqəti fayl yaradır |
|
Müvəqqəti direktoriya yaradır |
|
Faylı və ya boş direktorianı silir |
|
Faylı kopyalayır |
|
Faylı hərəkət etdirir |
|
Path-nin direktoriyanın olub-olmadığını yoxlayır |
|
Path-nin fayl olub-olmadığını yoxlayır |
|
Verilən path-ə uyğun obyektin mövcud olub-olmadığını yoxlayır |
|
Faylın ölçüsünü geri qaytarır |
|
Faylın bütün məzmununu byte massivi kimi geri qaytarır |
|
Faylın bütün məzmununu string kimi geri qaytarır |
|
Faylın bütün məzmununu string siyahısı kimi geri qaytarır |
|
Fayla byte massivini yazır |
|
Fayla string yazır |
|
Göstərilən direktoriyadan faylların (və alt direktoriyaların) kolleksiyasını geri qaytarır |
2. Faylların və direktoriyaların yaradılması
Faylları və direktoriyaları yaratmaq çox asandır. Gəlin nümunələrə baxaq:
Kod | Qeyd |
---|---|
|
Fayl yaradır |
|
Direktoriya yaradır |
|
Direktoriya və lazım olan bütün alt direktoriyaları yaradır, əgər onlar mövcud deyilsə. |
3. Faylların kopyalanması, hərəkəti və silinməsi
Faylları kopyalamaq, hərəkət etdirmək və silmək də asandır. Bu, qovluqlara da aiddir, amma qovluqlar boş olmalıdır.
Kod | Qeyd |
---|---|
|
Faylı kopyalayır |
|
Faylı hərəkət etdirir və yenidən adlandırır |
|
Faylı silir |
4. Faylın tipi və mövcudluğunu yoxlama
Əgər kənardan əldə etdiyiniz bir yol varsa, bunun fayl, yoxsa direktoriyadır olduğunu bilmək istəyərsiniz. Ümumiyyətlə, bu fayl/direktoriya mövcuddur, ya yox?
Bunun üçün də xüsusi metodlar var. Həmçinin faylın uzunluğunu asanlıqla öyrənmək olar:
Kod | Qeyd |
---|---|
|
|
|
|
|
|
|
|
5. Fayl məzmunu ilə işləmək
Və nəhayət, faylın məzmununu asanlıqla oxumaq və ya yazmaq üçün bir sıra metodlar var. Məsələn:
Kod | Təsvir |
---|---|
|
Fayl məzmununu sətirlər siyahısı şəklində oxuyuruq. Sətirləri ekrana çıxarırıq. |
6. Qovluğun məzmununu əldə etmək
Ən maraqlı metod qalıb — verilmiş qovluqdakı faylları və alt qovluqları əldə etmək.
Bunun üçün xüsusi metod var — newDirectoryStream()
, bu metod DirectoryStream<Path>
tipindən xüsusi bir obyekt qaytarır. Bunun iterator-u (!) var və bu iterator vasitəsilə verilmiş qovluğun bütün fayllarını və alt qovluqlarını əldə etmək olar.
Bu metod çox sadə görünür:
Kod | Təsvir |
---|---|
|
Faylların siyahısı ilə obyekt əldə edirik Fayllar siyahısı üzrə dövr |
DirectoryStream<Path>
obyektinin iki xüsusiyyəti var. Əvvəla, onun iterator-u var ki, bu iterator fayllara olan yolları qaytarır və bu obyekti for-each
dövründə istifadə edə bilərik.
İkincisi, bu obyekt məlumat axını (stream) rolunu oynayır, və onu close()
metodu ilə bağlamaq lazımdır, ya da try
-with-resources daxilində istifadə etmək lazımdır.
7. Files.newInputStream
metodu
Java 5-dən başlayaraq FileInputStream
və FileOutputStream
sinifləri köhnəlmiş hesab olunur. Bu siniflərin mənfi cəhətlərindən biri onların obyektləri yaradılan kimi disklərdə faylların yaradılmasıdır. Bu da faylların yaradılması ilə bağlı olan bütün səhvlərin atılmasına səbəb olur.
Sonda bu həll ən yaxşı qərar hesab olunmadı. Buna görə də, fayl obyektləri yaratmaq üçün utilitar sinfin metodlarından - java.nio.Files
istifadə edilməsi tövsiyə olunur.
Faylların yaradılması üçün köhnə yanaşma ilə yeni yanaşmanın müqayisəsi:
Əvvəl |
---|
|
İndi |
|
FileOutputStream
üçün də bənzər dəyişikliklər edilə bilər:
Əvvəl |
---|
|
İndi |
|
GO TO FULL VERSION