Le terme "correct" dépend de ce que vous essayez de faire exactement.
\n vous donnera toujours une fin de ligne "style Unix". \r\n vous donnera toujours une fin de ligne de type "dos". %n vous donnera la fin de ligne correspondant à la plate-forme sur laquelle vous travaillez.
C gère cela différemment. Vous pouvez choisir d'ouvrir un fichier en mode "texte" ou en mode "binaire". Si vous ouvrez le fichier en mode binaire \n vous donnera une fin de ligne "à la manière d'Unix" et " \r\n "vous donnera une fin de ligne de type "dos". Si vous ouvrez le fichier en mode "texte" sur un système dos/Windows, lorsque vous écrivez \n le code de traitement des fichiers le convertit en \r\n. Ainsi, en ouvrant un fichier en mode texte et en utilisant la fonction \n vous obtenez la fin de ligne spécifique à la plate-forme.
Je comprends pourquoi les concepteurs de Java n'ont pas voulu reproduire les idées bizarres de C concernant les modes de fichiers "texte" et "binaire".
1 votes
Ce n'est qu'une supposition, mais.. : Support multiplateforme. Des systèmes différents utilisent des caractères différents pour les nouvelles lignes, par exemple \n vs. \r\n. C# a Environment.NewLine pour le même objectif.
0 votes
Java a également quelque chose dans System, mais %n est plus facile dans un printf.
1 votes
Pourquoi java a changé cette convention == +1, :)
0 votes
Il ne s'agit pas d'un changement, mais d'un ajout ou d'une amélioration. \n signifie toujours \n
2 votes
(note aux futurs lecteurs : C est déjà une auto-conversion
\n
à la plateforme spécifique de la nouvelle ligne dans le format texte, voir cette (ce qui n'est pas le cas de Java)0 votes
Quelqu'un pourrait-il indiquer quelles versions de Java prennent en charge cette fonction ?