/ / Najlepsza strategia dodawania wierszy tekstu do pliku tekstowego - java, file, io, buforowany czytnik

Najlepsza strategia dodawania linii tekstu do pliku tekstowego - java, file, io, bufferedreader

Korzystam z plików txt, tworząc je za pomocą klasy PrintWriter. To pozwala mi drukować wewnątrz pliku txt niektóre treści przy użyciu println(...) metoda.

Ale teraz muszę dodać trochę treści na końcu utworzonej przeze mnie listy. Lubię to:

PrintWriter writer = new PrintWriter("File.txt", "utf-8");

writer.println("Hello");
writer.println("Josh!");

writer.close();

wynikiem jest plik taki jak ten:

cześć

Josh!

ale co jeśli chciałbym dodać nowe słowa na dole tekstu? Wolałbym zastąpić plik „File.txt” zaktualizowaną treścią?

cześć

Josh!

Jak się masz?

Myślałem o czymś takim: „Ok, muszędodaj kolejny wiersz na końcu, więc przeczytaj cały plik i napisz inny plik (o tej samej nazwie i treści) dodając nowy wiersz na końcu ", ale wydaje się to zbyt dziwne, czuję, że istnieje inny prosty sposób zrobić to. Masz inny pomysł?

Odpowiedzi:

1 dla odpowiedzi № 1

Zamiast tego możesz po prostu użyć FileWriter, ma on tryb dołączania, który możesz włączyć:

    FileWriter writer = new FileWriter("File.txt");

writer.write("Hellon");

writer.write("Josh!n");

writer.close();

writer = new FileWriter("File.txt", true);

writer.append("Great!");

writer.close();

1 dla odpowiedzi nr 2

Twoje podejrzenia są słuszne.

Powinieneś użyć try with resources (Java 7+):

try(PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter("File.txt", true)))) {
out.println("How are you?");
}catch (IOException e) {
//exception handling left as an exercise for the reader
}

Drugi parametr do FileWriter constructor każe mu dołączyć do pliku (w przeciwieństwie dowyczyszczenie pliku). Użycie BufferedWriter jest zalecane dla drogiego programu piszącego (tj. FileWriter), a użycie PrintWriter daje dostęp do składni println, do której prawdopodobnie przywykłeś z System.out. Ale opakowania BufferedWriter i PrintWriter nie są absolutnie konieczne.

Pozwala to również na dołączenie do pliku zamiast zastępowania całego pliku przy każdym uruchomieniu. Wreszcie, spróbuj z zasobami oznacza, że ​​nie musisz dzwonić .close(), zrobione dla ciebie! Złapałem stąd