Je cours depuis quelques temps en Java, mais j'ai encore quelques questions brûlantes sur les fondamentaux. J'ai entendu dire que je devais utiliser System.out.println() pour afficher des données de certaines personnes, et d'autres m'ont donné des idées différentes (comme PrintStream ou autre chose). Quel est le meilleur moyen d'imprimer sur console en Java?Devrais-je utiliser System.out.println() ou autre chose?
Répondre
System.out
est a PrintStream.
Si votre objectif principal est d'interagir avec une console, consultez java.io.Console
. Si votre objectif principal est d'avoir une sorte de journalisation, utilisez un cadre de journalisation comme Java Logging API ou log4j.
Si vous démarrez et que vous souhaitez imprimer des chaînes sur la console, alors System.out.println() fonctionnera correctement. Obtenez vos fondamentaux bas et ensuite vous pouvez plonger dans les points plus fins de Java I/O.
Cela dépend de ce que vous faites. Je suggère presque toujours d'utiliser l'API de journalisation Java (java.util.logging). System.out.println est plus un "outil de débogage" mais même alors vous avez beaucoup plus de contrôle sur la sortie en utilisant l'API de journalisation du JDK ...
Utilisez log4j et la sortie directe sur stdout. Il est alors facile de passer aux fichiers journaux selon les besoins.
L'utilisation de System.out
est directement la manière la plus simple et la plus efficace. Si vous avez beaucoup à imprimer, vous pouvez étudier en utilisant BufferedOutputStream
.
Il est possible de gagner en efficacité en créant les chaînes à imprimer plus efficacement. S'il y a beaucoup de concaténation en cours, regardez StringBuilder
.
System.out est bon pour l'impression sur la console. Cependant, j'ai trouvé que faire l'effort d'utiliser java.util.logging à la place était un meilleur choix pour moi. (Ou un système de journalisation.)
Cela dépend des informations que vous tentez d'afficher. Si c'est pour l'interaction utilisateur de la console, System.out est parfait. Si c'est pour afficher des informations de débogage, la journalisation est probablement la solution, car elle vous permet d'avoir plus de contrôle sur les choses si vous le souhaitez.
(Après l'installation initiale, les services publics d'exploitation forestière sont presque aussi transparents que l'utilisation System.out.)
yu pouvez définir
System.setOut (nouveau PrintStream (« all-my-sysouts -go en ce-fichier.txt »);
puis faire sysoyts ...
yu peut les suivre en utilisant baretail ...
espoir cela aide ..
raj.
Je vous suggère d'utiliser les API Java de journalisation
Oui, la plus simple et moyen efficace pour imprimer sur la console est généralement System.out.print() et System.out.println() mais si vous avez une grande quantité de sortie à envoyer, System.out.println() peut être inefficace, car elle est mise en mémoire tampon et fait beaucoup de travail lié à la gestion Unicode. En raison de sa petite taille de tampon, System.out.println() n'est pas bien adapté pour gérer de nombreuses sorties répétitives dans un mode batch. Chaque ligne est immédiatement rincée. Dans ce cas, vous pouvez utiliser BufferedOutputStream ou BufferedWriter.
Il est important de noter que System.out ne va pas toujours à la console ou le terminal d'application. System.out pointe vers le canal de sortie standard de l'application ; en C/C++, il s'appelle stdout. Cela peut aller à la console, mais il peut également aller n'importe où que l'utilisateur décide de l'envoyer. Par exemple un fichier puis tout imprimé à System.out se retrouvera dans le fichier my-app-output.txt. Donc, si vous voulez envoyer une sortie régulière, utilisez System.out. Si vous voulez envoyer un message d'erreur ou une notification d'utilisateur, avec une grande chance d'aller à la console, utilisez System.err.print() et System.err.println().
Il n'y a pas de manière portable d'obtenir un canal vers la 'vraie' console dans les versions de Java antérieures à la 1.6. En 1.6, il existe une classe d'objets spécifiquement pour représenter la console: java.io.Console. Une référence à cet objet unique peut être obtenue à partir de la classe System en utilisant la méthode statique console().
Mais si votre exigence est de déboguer l'ensemble de l'application, alors comme tout le monde l'a dit en utilisant des enregistreurs est la meilleure approche.
Peut-être qu'ils ont écrit les bibliothèques d'E/S Java: P – wshato