"correcto" depende de qué es exactamente lo que está tratando de hacer.
\ n siempre le dará un final de línea "estilo Unix". \ r \ n siempre le dará un final de línea "estilo dos". % n le dará el final de línea para la plataforma en la que está ejecutando
C maneja esto de manera diferente. Puede elegir abrir un archivo en modo "texto" o "binario". Si abre el archivo en modo binario, \ n le dará un final de línea "estilo unix" y "\ r \ n" le dará un final de línea "estilo dos". Si abre el archivo en modo "texto" en un sistema DOS / Windows, cuando escribe \ n, el código de manejo de archivos lo convierte a \ r \ n. Entonces, al abrir un archivo en modo texto y usar \ n, obtienes el final de línea específico de la plataforma.
Puedo ver por qué los diseñadores de Java no querían replicar las ideas hacky de C sobre los modos de archivo "texto" y "binario".