The fact that PrintWriter
‘s method is called append()
doesn’t mean that it changes mode of the file being opened.
You need to open file in append mode as well:
PrintWriter pw = new PrintWriter(new FileOutputStream(
new File("persons.txt"),
true /* append = true */));
Also note that file will be written in system default encoding. It’s not always desired and may cause interoperability problems, you may want to specify file encoding explicitly.