Comment vider la console en Java

Rupam Yadav 12 octobre 2023
  1. Utiliser les codes d’échappement ANSI pour nettoyer la console en Java
  2. Utilisez ProcessBuilder pour effacer la console en Java
Comment vider la console en Java

Dans ce tutoriel, nous examinerons les deux moyens qui peuvent être utilisés pour nettoyer l’écran de la console en Java. Nous examinerons des exemples pour apprendre à exécuter les commandes de nettoyage d’écran en Java au moment de l’exécution.

Utiliser les codes d’échappement ANSI pour nettoyer la console en Java

Nous pouvons utiliser des codes spéciaux appelés séquences de codes d’échappement ANSI pour modifier la position du curseur ou afficher différentes couleurs. Ces séquences peuvent être interprétées comme des commandes qui sont une combinaison d’octets et de caractères.

Pour effacer la console en Java, nous utiliserons le code d’échappement \033[H\033[2J. Cet étrange ensemble de caractères représente la commande de nettoyage de la console. Pour mieux le comprendre, nous pouvons le décomposer.

Les quatre premiers caractères \033 signifient ESC ou le caractère d’échappement. En combinant 033 avec [H, nous pouvons déplacer le curseur à une position spécifiée. Les derniers caractères, 033[2J, nettoient tout l’écran.

Nous pouvons regarder l’exemple ci-dessous, qui utilise ces codes d’échappement. Nous utilisons également System.out.flush() qui est spécialement utilisé pour vider les octets restants lors de l’utilisation de System.out.print() afin que rien ne soit oublié sur l’écran de la console.

Exemple :

public class ClearConsoleScreen {
  public static void main(String[] args) {
    System.out.print("Everything on the console will cleared");
    System.out.print("\033[H\033[2J");
    System.out.flush();
  }
}

Utilisez ProcessBuilder pour effacer la console en Java

Dans cette méthode, nous utiliserons un ProcessBuilder qui est une classe principalement utilisée pour démarrer un processus. Nous pouvons construire un processus avec les commandes qui vont nettoyer la console.

Le ProcessBuilder() prend en compte les commandes à exécuter et ses arguments. Le problème avec cette approche est que différents systèmes d’exploitation peuvent avoir différentes commandes pour nettoyer l’écran de la console. C’est pourquoi, dans notre exemple, nous vérifions le système d’exploitation actuel.

Enfin, nous utilisons la classe Process pour démarrer un nouveau processus avec inheritIO pour définir les canaux d’entrée et de sortie standard sur le canal d’entrée/sortie de Java.

public class ClearScreen {
  public static void main(String[] args) {
    System.out.println("Hello World");
    ClearConsole();
  }

  public static void ClearConsole() {
    try {
      String operatingSystem = System.getProperty("os.name") // Check the current operating system

                               if (operatingSystem.contains("Windows")) {
        ProcessBuilder pb = new ProcessBuilder("cmd", "/c", "cls");
        Process startProcess = pb.inheritIO.start();
        startProcess.waitFor();
      }
      else {
        ProcessBuilder pb = new ProcessBuilder("clear");
        Process startProcess = pb.inheritIO.start();

        startProcess.waitFor();
      }
    } catch (Exception e) {
      System.out.println(e);
    }
  }
}
Auteur: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Article connexe - Java Console