Operacje na plikach

Zarówno pliki jak i katalogi w języku Java reprezentowane są przez klasę java.io.File. Klasy File używamy aby sprawdzić, czy interesujący nas plik lub katalog istnieje, do tworzenia nowych plików oraz katalogów a także aby sprawdzić, czy dana instancja klasy File reprezentuje plik czy katalog. Klasa ta umożliwia także takie operacje jak kasowanie oraz zmianę nazwy, natomiast nie służy ona do odczytu czy zapisu z czy do pliku. O tym jak odczytać czy zapisać dane z czy do pliku dowiemy się w kolejnych częściach kursu.

Chciawszy wykonać dowolną operację na plikach czy katalogach musimy zacząć od utworzenia instancji klasy File, która to będzie interesujący nas plik lub katalog reprezentowała. Podstawowym konstruktorem klasy File jest konstruktor jednoargumentowy; argumentem tym jest ścieżka dostępu.

Aby utworzyć instancję klasy File reprezentującą plik o nazwie „Czarne oczy.mp3”, który to plik znajduje się w katalogu „Moja muzyka” na dysku „D” powinniśmy napisać:

File czarneOczy = new File("D:/Moja muzyka/Czarne oczy.mp3");

To, że utworzyliśmy obiekt klasy File nie oznacza bynajmniej, że taki plik czy katalog istnieje. Aby sprawdzić czy obiekt klasy File reprezentuje istniejący zbiór dyskowy (plik lub katalog) możemy użyć metody boolean exists(). Metoda ta zwraca wartość true jeśli plik lub katalog istnieje a false w przeciwnym przypadku.

Jeśli chcemy sprawdzić nie tylko czy wskazany zbiór dyskowy istnieje, ale także czy jest to plik, to powinniśmy użyć metody boolean isFile(). Metoda ta zwraca wartość true jeśli dany zbiór dyskowy istnieje i jest to plik a wartość false w przeciwnym przypadku. Analogicznie, metoda boolean isDirectory() pozwala nam sprawdzić czy zbiór dyskowy istnieje i czy jest to katalog. Aby więc sprawdzić czy istnieje plik „D:/Moja muzyka/Czarne oczy.mp3” moglibyśmy napisać:

if(czarneOczy.isFile())
  System.out.println("Plik istnieje! Graj muzyko!");

Aby utworzyć plik reprezentowany przez instancję klasy File używamy metody boolean createNewFile(). Metoda ta zwraca wartość true jeśli plik został utworzony a false w przeciwnym przypadku. Przykładowo, plik nie zostanie utworzony, jeśli już istniał.

W celu utworzenia katalogu posłużymy się metodą boolean mkdir() lub boolean mkdirs(). Metoda mkdir() tworzy tylko i wyłącznie katalog wskazany bezpośrednio przez ścieżkę dostępu, natomiast metoda mkdirs() utworzy także w razie potrzeby wszystkie nadkatalogi. Obydwie metody zwracają wartość true jeśli katalog został utworzony a false w przeciwnym wypadku. Przykładowo, aby utworzyć katalog „D:/Moja muzyka/Ludowa”, przy założeniu że nie istnieje ani ten katalog ani katalog „D:/Moja muzyka”, powinniśmy napisać:

File muzykaLudowa = new File("D:/Moja muzyka/Ludowa");
muzykaLudowa.mkdirs();

Klasa File udostępnia jeszcze szereg innych metod, np. metodę File[] listFiles() która zwraca tablicę obiektów reprezentujących pliki i katalogi znajdujące się w katalogu dla którego wywołano tę metodę.

W ramach ćwiczenia otwórz teraz dokumentację klasy java.io.File i zapoznaj się z pozostałymi metodami. Umiejętność posługiwania się dokumentacją klas jest podstawową umiejętnością programisty. Skorzystaj z okazji aby tę umiejętność nabywać. Odnajdź w tej dokumentacji metody niezbędne do implementacji programu kasującego ze wskazanego katalogu i wszystkich podkatalogów pliki z rozszerzeniem „tmp” i zaimplementuj taki program.

Subscribe
Powiadom o
guest
5 komentarzy
Oldest
Newest Most Voted
Inline Feedbacks
View all comments