Dal punto di vista della creazione del file ... no di certo, non c'è alcun "append" di per sé. PrintWriter non ha la funzionalità di "aprire" un file in append (ce l'hanno invece FileOutputStream e FileWriter). Quindi per come hai fatto, il file viene SEMPRE riscritto da zero.
Può venire invece da pensare che siano i tuoi ArrayList a non venire mai svuotati, in pratica probabilmente aggiungi sempre. E pertanto il problema si sposta a livello di tua logica applicativa.
P.S. Per evitare di ripetere la composizione del nome del file (che è una ripetizione!):
prima:
File f = new File("Radici(" + grado + ")" + reale + "+" + img + "i.scr");
poi:
try (PrintWriter writer = new PrintWriter(f)) {
......
Molto semplice, no?