"corretto" dipende da cosa esattamente si sta tentando di fare.
\ n ti darà sempre una fine linea "stile unix". \ r \ n ti darà sempre un finale in stile "dos style". % n ti darà la fine della linea per la piattaforma su cui stai correndo
C gestisce questo in modo diverso. Puoi scegliere di aprire un file in modalità "testo" o "binario". Se apri il file in modalità binaria, \ n ti darà un finale di linea "stile unix" e "\ r \ n" ti darà una fine riga "stile dos". Se apri il file in modalità "testo" su un sistema dos/windows, quando scrivi \ n il codice di gestione file lo converte in \ r \ n. Quindi aprendo un file in modalità testo e usando \ n si ottiene la fine della linea specifica della piattaforma.
Posso capire perché i progettisti di java non volevano replicare le idee hacky di C relative alle modalità file "testo" e "binario".
fonte
2015-05-21 18:29:21
Solo un'ipotesi, ma: supporto multipiattaforma. Sistemi diversi utilizzano caratteri diversi per le nuove linee, ad es. \ n vs \ r \ n. C# ha Environment.NewLine per lo stesso scopo. –
Anche Java ha qualcosa in System, ma% n è più semplice in un printf. –
perché java ha cambiato questa convenzione c == +1, :) –