naukaJavy.pl

  • Zwiększ rozmiar czcionki
  • Domyślny  rozmiar czcionki
  • Zmniejsz rozmiar czcionki
Home Kurs języka Java

Zapis tekstu do pliku

Email Drukuj

Problematyka zapisu tekstu do pliku jest zupełnie analogiczna do problematyki odczytu. Podobnie jak do odczytu tak do zapisu używamy klas implementujących strumienie, dostarczanych w pakiecie java.io biblioteki standardowej Java SE. Prostą metodę, która zapisałaby kolejne elementy z tablicy stringów jako kolejne wiersze do pliku tekstowego moglibyśmy zaimplementować następująco:

public void writeFile(String filePath, String[] textLines)
throws
IOException {

FileWriter fileWriter = new FileWriter(filePath);
BufferedWriter bufferedWriter = new BufferedWriter(fileWriter);

try {
for (String line : textLines) {
bufferedWriter.write(line);
bufferedWriter.newLine();
}
} finally {
bufferedWriter.close();
}
}

Zauważmy, że metoda ta jest bardzo podobna do metody odczytującej której implementację podałem w artykule „Odczyt tekstu z pliku”. W pierwszej linii metody writeFile(…) tworzymy obiekt klasy java.io.FileWriter. Jest to klasa która służy do zapisywania ciągu znaków do pliku tekstowego, przy użyciu domyślnego kodowania. Implementując metodę do odczytu readFile(...) robiliśmy coś bardzo podobnego, tyle że tam używaliśmy klasy FileReader.

W drugiej linii, zupełnie analogicznie jak w metodzie readFile(…) z artykułu „Odczyt tekstu z pliku”, opakowujemy obiekt klasy FileWriter w obiekt klasy java.io.BufferedWriter. Korzystając z pętli FOR-EACH iterujemy po kolejnych elementach tablicy stringów i zapisujemy je do pliku za pomocą metody write(…). Chemy aby kolejne stringi zapisane były w kolejnych liniach a więc musimy jeszcze po każdym stringu zapisać do pliku znak końca linii. Możemy to zrobić wywołując metodę newLine(). Znak końca linii jest różny dla różnych systemów operacyjnych, ale dzięki metodzie newLine() nie musimy się o to martwić. Metoda ta wybiera ten odpowiedni i właśnie go zapisuje.

Podobnie jak w przypadku stumieni służących do zapisu danych do pliku tak strumienie służące do odczytu zajmują zasoby systemowe, które po zakończonej pracy musimy zwolnić. Robimy to wywołując metodę close().

Metoda writeFile(…) w formie pokazanej powyżej zapisuje tekst do pliku nadpisując każdorazowo to co było w nim zapisane. W ramach ćwiczenia zmodyfikujmy ją teraz w taki sposób, aby zamiast zapisywania za każdym razem tekstu na nowo dopisywała tekst do tego już zapisanego. Kluczem do rozwiązania tego zadania jest lektura dokumentacji konstruktorów klasy FileWriter. Musimy użyć innego konstruktora. Odnajdźmy w dokumentacji ten właściwy i użyjmy go odpowiednio.

 

Reklama

Wiadomości

Oracle złożył pozew sądowy przeciwko firmie Google, oskarżając o naruszenie patentów i praw autorskich dotyczących platformy Java.

Kością niezgody jest platforma Google Android a zwłaszcza Wirtualna Maszyna Dalvik, zaimplementowana w oparciu o Wirtualną Maszynę Javy, ale niezgodna ze standardem Java SE czy Java ME.

Co to jest

Apache Lucene Java to biblioteka open-source napisana w języku Java. Lucene służy do implementacji mechanizmów wyszukiwania pełnotekstowego – taki mały Google, który możemy mieć we własnej aplikacji.


© Wszelkie prawa zastrzeżone dla Mariusza Lipińskiego

kontakt: mariusz.lipinski@naukajavy.pl | strona domowa: www.mariuszlipinski.pl