


Sortie dans le désordre de System.out.println et System.err.println
En Java, System.out.println () écrit dans le flux de sortie standard, tandis que System.err.println() écrit dans le flux d'erreurs standard. En règle générale, ces flux sont imprimés successivement sur la console. Cependant, dans certaines circonstances, ce comportement peut ne pas être cohérent.
Considérez l'extrait de code suivant :
public static void main(String[] args) { for (int i = 0; i <p>Lorsque vous exécutez ce programme, il produit le résultat suivant :</p><pre class="brush:php;toolbar:false">out out out out out err err err err err
Au lieu d'alterner entre « out » et « err », la sortie affiche tous les messages « out » suivis de tous les messages « err ». Cet écart s'explique par la nature différente des flux de sortie standard et des flux d'erreurs.
Les flux de sortie en Java sont mis en cache, ce qui signifie que les données ne sont pas immédiatement écrites sur la console. Au lieu de cela, il est stocké dans un tampon interne et vidé périodiquement. Le processus de vidage est déclenché par divers critères, tels qu'une certaine période d'inactivité ou l'atteinte d'une taille spécifique par le tampon.
Dans le cas de l'extrait de code ci-dessus, la sortie standard et les flux d'erreurs écrivent dans leurs fichiers respectifs. tampons. Étant donné que les écritures ne sont pas synchronisées, il est possible que le tampon du flux d'erreurs se remplisse en premier et soit vidé, même si certains messages « out » restent encore dans le tampon du flux de sortie. Cela entraîne la sortie dans le désordre observée.
Pour résoudre ce problème, vous pouvez vous assurer que les deux flux de sortie sont vidés après chaque écriture. Le code suivant inclut des appels à System.out.flush() et System.err.flush() dans la boucle :
public static void main(String[] args) { for (int i = 0; i <p>Avec cette modification, la sortie sera imprimée dans l'ordre alterné attendu :</p><pre class="brush:php;toolbar:false">out err out err out err out err out err
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Commencez le printemps à l'aide de la version IntelliJideaultimate ...

Lorsque vous utilisez MyBatis-Plus ou d'autres cadres ORM pour les opérations de base de données, il est souvent nécessaire de construire des conditions de requête en fonction du nom d'attribut de la classe d'entité. Si vous manuellement à chaque fois ...

Java...

Comment la solution de mise en cache Redis réalise-t-elle les exigences de la liste de classement des produits? Pendant le processus de développement, nous devons souvent faire face aux exigences des classements, comme l'affichage d'un ...

Conversion des objets et des tableaux Java: Discussion approfondie des risques et des méthodes correctes de la conversion de type de distribution De nombreux débutants Java rencontreront la conversion d'un objet en un tableau ...

Solutions pour convertir les noms en nombres pour implémenter le tri dans de nombreux scénarios d'applications, les utilisateurs peuvent avoir besoin de trier en groupe, en particulier en un ...

Explication détaillée de la conception des tables SKU et SPU sur les plates-formes de commerce électronique Cet article discutera des problèmes de conception de la base de données de SKU et SPU dans les plateformes de commerce électronique, en particulier comment gérer les ventes définies par l'utilisateur ...

Comment définir la liste de configuration d'exécution du projet Springboot dans l'idée en utilisant Intellij ...


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Version crackée d'EditPlus en chinois
Petite taille, coloration syntaxique, ne prend pas en charge la fonction d'invite de code

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Version Mac de WebStorm
Outils de développement JavaScript utiles

MantisBT
Mantis est un outil Web de suivi des défauts facile à déployer, conçu pour faciliter le suivi des défauts des produits. Cela nécessite PHP, MySQL et un serveur Web. Découvrez nos services de démonstration et d'hébergement.