Comment vider la console en Java
- Utiliser les codes d’échappement ANSI pour nettoyer la console en Java
-
Utilisez
ProcessBuilder
pour effacer 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);
}
}
}
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