console.writeline et du Système.out.println
Quelle est exactement la différence technique entre console.writeline
et System.out.println
?
Je sais que System.out.println
écrit sur la sortie standard, mais n'est-ce pas la même chose que la console?
Je ne suis pas entièrement comprendre le la documentation pour console.writeline
.
- Voir stackoverflow.com/questions/2369731/...
- également de la console.writeline n'est pas une méthode en java (il est .net)... mais je comprends ce que vous demandez 🙂
Vous devez vous connecter pour publier un commentaire.
Voici les principales différences entre l'utilisation de
System.out
/.err
/.en
etSystem.console()
:System.console()
retourne null si votre application n'est pas exécutée dans un terminal (bien que vous pouvez gérer cela dans votre application)System.console()
fournit des méthodes pour lire le mot de passe sans écho caractèresSystem.out
etSystem.err
utilisation de la plateforme par défaut l'encodage, alors que leConsole
de sortie de classe des méthodes d'utilisation de la console d'encodageCe dernier comportement peut ne pas être immédiatement évident, mais ce type de code peut démontrer la différence:
Sur mon Windows XP qui dispose d'un système de codage de windows-1252 et une console par défaut l'encodage de IBM850, ce code d'écriture:
Notez que ce comportement dépend de la console de codage d'un codage différent du système de codage. C'est le comportement par défaut sur Windows pour un tas de raisons historiques.
Ils sont essentiellement de la même façon, si votre programme est exécuté à partir d'une invite de commandes et vous n'avez pas redirigés stdin ou stdout:
résultats dans:
La raison
Console
est de fournir des fonctionnalités qui sont utiles dans le cas spécifique que vous êtes en cours d'exécution à partir d'un interactif en ligne de commande:Console
seront en file bien, alors que si vous avez utilisé le Système.in/out puis tous les invites apparaissent simultanément).La remarque ci-dessus que la redirection même un des flux de résultats dans
System.console()
retournull
; un autre irritation est qu'il n'y a souvent pas deConsole
objet disponible lorsque générés à partir d'un autre programme tel que Eclipse ou Maven.D'abord, je suis peur que votre question contient une petite erreur. Il n'y a pas de méthode writeline dans la classe Console. Au lieu de la classe Console fournit la méthode de l'écrivain() qui retourne PrintWriter. Cette impression écrivain a println().
Maintenant, quelle est la différence entre
et
Si vous exécutez votre application en ligne de commande je pense qu'il n'y a pas de différence. Mais si la console n'est pas disponible Système.console() renvoie la valeur null lorsque le Système.encore existe. Cela peut se produire si vous appelez votre demande et effectuer la redirection de la sortie standard vers un fichier.
Voici un exemple que j'ai déjà mises en œuvre.
Quand j'ai couru l'application à partir de l'invite de commande j'ai eu la suivante:
mais quand j'ai redirigé la sortie standard dans un fichier...
La ligne 8 est
console.writer().println()
.Voici le contenu de /tmp/test
J'espère que mes explications vous aider.
Il n'y a pas
Console.writeline
en Java. Ses dans .NET.Console et standard ne sont pas les mêmes. Si vous lisez la Javadoc page, vous mentionné, vous verrez qu'une application peut avoir accès à une console uniquement si elle est appelée à partir de la ligne de commande et la sortie n'est pas redirigé, comme ce
D'autres cas de ce genre sont couverts dans SimonJ de répondre, mais il a manqué le point qu'il n'y a pas de
Console.writeline
.