Tak, zdaję sobie sprawę, że '\n'
pisze do nowej linii w systemie UNIX, podczas gdy dla Windows jest sekwencja dwóch znaków: '\r\n'
. Wszystko to jest bardzo ładne w teorii, ale moje pytanie brzmi: dlaczego ? Dlaczego znak powrotu karetki jest dodatkowy w systemie Windows? Jeśli UNIX może to zrobić, \n
dlaczego zajmuje to Windowsowi dwa znaki?
Czytam książkę Davida Beazleya w Pythonie, a on mówi:
Na przykład w systemie Windows napisanie znaku „\ n” faktycznie wyprowadza dwuznakową sekwencję „\ r \ n” (a podczas odczytywania pliku ponownie „\ r \ n” jest tłumaczone z powrotem na pojedynczy „\ n” postać).
Dlaczego dodatkowy wysiłek?
Będę szczery. Różnicę znam od dawna, ale nigdy nie zadałem sobie trudu, by zapytać DLACZEGO. Mam nadzieję, że odpowiedź jest dziś.
Dziękuję za Twój czas.
System.out.printf()
Lub String.format()
) upewnij się, że używasz %n
jako CRLF do celów zgodności z systemem operacyjnym. \n
jest przestarzałe.
\n\r
kilka razy. (Myślę, że to było coś z NetWare.)
\r\n
. Jest również używany przez większość tekstowych protokołów internetowych (np. SMTP, HTTP itp.) Z zasadniczo tego samego powodu, co Windows (tj. Historia).