Comme je sais à la fois out et err sont de même classe PrintStream
. Quelqu'un peut-il me dire comment ils diffèrent ... comment ils ont changé leur comportement?différence entre system.out et system.err
Répondre
Ils vont respectivement aux flux stdout et stderr du système. Sur la plupart des systèmes d'exploitation, ils sont distincts et peuvent être envoyés à différents endroits. Par exemple, cela pourrait être utile si la sortie de votre programme devait être analysée par un autre programme - si elle devait signaler une erreur, stderr serait normalement le meilleur endroit pour cela car vous pourriez l'avoir configuré pour attirer l'attention d'un humain.
La différence n'est pas évidente car, par défaut, dans la plupart des systèmes d'exploitation, ils sont écrits sur la console (même fichier, la console est également un fichier). Cependant, vous pouvez écrire System.out
dans un fichier et System.err
écrire sur la console (moniteur) - ceci est juste un scénario.
Ecrivez un programme qui émet à la fois des messages System.out et System.err et essayez ceci:
java MyProgram > out.txt 2> err.txt # On a *NIX.
messages System.out
iront à Out.txt et System.err
messages seront à err.txt. Le point de base à retenir est de considérer System.out et System.err comme des flux vers des fichiers (ce qui est ce qu'ils sont) au lieu d'un mécanisme de sortie sur le moniteur, ce que j'ai supposé en tant que débutant.
+1 pour l'exemple de redirection. –
Ils ont le même comportement. Mais le premier (out) est une référence au flux de sortie standard (par défaut c'est une console). Et second (err) est une référence au flot d'erreurs standard (par défaut c'est aussi une console). Mais si vous le souhaitez, vous pouvez modifier une référence ou ajouter un wrapper/un filtre à chacun d'entre eux.
Mon IDE, par exemple, affiche la sortie du flux err
dans les couleurs rouges. System.out envoie la sortie au flux de sortie standard.
System.err envoie la sortie au flux d'erreurs standard. Par défaut, ces deux éléments sont écrits sur la console.
Toutefois, l'avantage est que les deux flux peuvent être redirigés afin que la sortie system.out puisse être redirigée vers votre fichier journal normal et que la sortie System.err puisse être redirigée vers un journal des erreurs.
- 1. rediriger System.out/System.err vers log4j pour certains pots seulement
- 2. Eclipse Stacktrace System.err problème
- 3. Rediriger System.out vers JTextPane
- 4. Différence entre sqlreader et
- 5. VBA: Différence entre & et +
- 6. Différence entre référence et & *?
- 7. différence entre String.Empty et ""
- 8. Différence entre -Wconversion entre gcc et g ++
- 9. Différence entre DECLARE_DYNAMIC et DECLARE_DYNCREATE?
- 10. Différence entre JNLP et JavaFX
- 11. Différence entre Session et HttpContext.Current.Session
- 12. Différence entre (++ i) et (i ++)
- 13. Différence entre tortoisesvn et CollabNetSubversion
- 14. Différence entre l'interruption et l'événement
- 15. différence entre contenttypeorder et uniquecontenttypeorder
- 16. différence entre openTK et cloo?
- 17. Différence entre Server.MapPath et Page.MapPath
- 18. Différence entre java.awt. * Et java.awt.event. *
- 19. Différence entre Html.RenderAction et Html.Action
- 20. Différence entre URI et URL
- 21. Différence entre JAVA_OPTS et JAVA_TOOL_OPTIONS?
- 22. différence entre cela et $ (this)
- 23. Différence entre IQueryable et Queryable
- 24. différence entre lcds et fds
- 25. Différence entre onMouseOver et onMouseEnter
- 26. Différence entre ValidatorForm et DynaValidatorForm
- 27. Python: Différence entre `is` et` == `?
- 28. Différence entre Where et Single
- 29. Différence entre request.status et request.statusCode
- 30. Différence entre FileStreamResult et FilePathResult?
http://en.wikipedia.org/wiki/Standard_streams – stacker