«правильный» зависит от того, что именно вы пытаетесь сделать.
\ n всегда будет давать окончание строки в стиле "unix". \ r \ n всегда будет давать вам окончание строки в стиле "dos". % n даст вам конец строки для платформы, на которой вы работаете
C обрабатывает это иначе. Вы можете открыть файл в «текстовом» или «двоичном» режиме. Если вы откроете файл в двоичном режиме, \ n даст вам окончание строки в стиле "unix", а "\ r \ n" даст вам окончание строки в стиле dos. Если вы открываете файл в «текстовом» режиме в системе dos / windows, тогда, когда вы пишете \ n, код обработки файла преобразует его в \ r \ n. Итак, открыв файл в текстовом режиме и используя \ n, вы получите окончание строки, зависящей от платформы.
Я понимаю, почему разработчики java не хотели копировать хакерские идеи C относительно "текстового" и "двоичного" файловых режимов.