Zapis do pliku obiektem PrintWriter

Zapis do pliku obiektem PrintWriter
  • Rejestracja: dni
  • Ostatnio: dni
0

Witam serdecznie, przerabiam sobie książkę "Java - techniki zaawansowane", i napotkałem na drobny problem, otóż - próbuje wykonać ten kawałek kodu :

Kopiuj
public static void main (String[] args)throws IOException{

        PrintWriter out = new PrintWriter("test.txt");
        String s = "blablblblb";
        out.print(s);
    }

i... nie działa, dodam tylko, że wszystkie dane w pliku znikają podczas wykonywania operacji, dodatkowo warto dodać, że odczytywanie z pliku działa jak należy.

Proszę o oświecenie, gdzie leży błąd.

Pozdrawiam, i dzięki.

GA
  • Rejestracja: dni
  • Ostatnio: dni
0

dodaj na koniec

Kopiuj
out.close();
  • Rejestracja: dni
  • Ostatnio: dni
0

Z metodą print po dodaniu close() działa jak należy. Dzięki.

Jednakże przy użyciu println() wciąż jest problem, i w jaki sposób nadpisywać plik, tzn. nie usuwając jego wcześniejszej zawartości ?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
0

Otworzyć w trybie "append".

GA
  • Rejestracja: dni
  • Ostatnio: dni
1

np. tak

Kopiuj
        File file = new File("output.txt");
        FileWriter writer = new FileWriter(file, true);
        PrintWriter output = new PrintWriter(writer);
        output.print("aaa");
        output.close();
  • Rejestracja: dni
  • Ostatnio: dni
0

Oki, dzięki wszystko teraz jasne. Pozdrawiam

P.S nie mogę plusować Waszych komentarzy, ale okazały się bardzo pomocne.

niezdecydowany
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Bieszczady
0

Albo, można np: skorzystać z Javy 7, bo jest fajna

Kopiuj
Path logFile = Paths.get("/tmp/app.log");
try (BufferedWriter writer =
  Files.newBufferedWrite(logFile, StandardCharsets.UTF_8, StandardOpenOption.WRITE)) {
  writer.write("Hello World!");

}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.