L'a-capo è platform-dependent. L'uso di PrintWriter, BuffererdWriter, ecc, non c'entra nulla: puoi usare quello che vuoi.
Ciascun sistema operativo lo tratta "a modo suo".
I sistemi Unix-like lo eseguono, appunto, aggiungendo un "\n". I sistemai Windows invece vogliono una coppia di caratteri: "\r\n".
Java mette a disposizione la corretta sequenza in base al sistema operativo su cui sta girando, all'interno di una apposita system property:
codice:String newLine = System.getProperty("line.separator");
Quello è ciò che va aggiunto alla fine della riga per ottenere l'andata a capo in modo cross-platform.
Ovviamente, il file di testo generato sarà correttamente interpretato solo dal sistema operativo che sia conforme a tale separatore.
Un modo "più rapido" per ottenere lo stesso risultato è usare ad esempio PrintWriter ed usare i relativi metodi println() (che sta, appunto, per "line"), i quali aggiungono automaticamente la sequenza di andata a capo per il sistema operativo in uso.
![]()