Когда вы открываете файл, передавая объект File в Print Writer , вы, по сути, позволяете PrintWriter определять способ открытия файла (наиболее вероятно, Create), который удаляет существующий файл и готовит новый один для записи.
Поскольку вы никогда не сохраняете (закрываете поток), любые данные, буферизованные в PrintWriter, не выводятся в файл.
Вам необходимо изменить подход к файлу, если вы используете функцию File.Open (...), вы можете указать сеанс добавления.
FileStream outStream = File.Open(myFileName, FileMode.Append);
PrintWriter pw = new PrintWriter(outStream);
Таким образом, ваш файл не будет очищен простым открытием, и вы можете добавить в конец.
В качестве альтернативы вы можете принудительно очистить файл, если хотите, открыв его с помощью FileMode.Create
P.S. Вы должны узнать о , используя блок, это очень полезно.