Cancella la console in Java

Rupam Yadav 12 ottobre 2023
  1. Usa codici di escape ANSI per cancellare la console in Java
  2. Usa ProcessBuilder per cancellare la console in Java
Cancella la console in Java

In questo tutorial, esamineremo i due modi che possono essere utilizzati per pulire lo schermo della console in Java. Vedremo esempi per imparare come eseguire i comandi di clear screen di Java in fase di runtime.

Usa codici di escape ANSI per cancellare la console in Java

Possiamo utilizzare codici speciali chiamati sequenze di codici di escape ANSI per modificare le posizioni del cursore o visualizzare colori diversi. Queste sequenze possono essere interpretate come comandi che sono una combinazione di byte e caratteri.

Per cancellare la console in Java, useremo il codice di escape \033[H\033[2J. Questo strano insieme di caratteri rappresenta il comando per pulire la console. Per capirlo meglio, possiamo scomporlo.

I primi quattro caratteri \033 significano ESC o il carattere di escape. Combinando 033 con [H, possiamo spostare il cursore in una posizione specificata. Gli ultimi caratteri, 033[2J, puliscono l’intero schermo.

Possiamo guardare l’esempio seguente, che utilizza questi codici di escape. Stiamo anche usando System.out.flush() che è usato specialmente per svuotare i byte rimanenti quando si usa System.out.print() in modo che nulla rimanga sullo schermo della console.

Esempio:

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();
  }
}

Usa ProcessBuilder per cancellare la console in Java

In questo metodo, useremo un ProcessBuilder che è una classe usata principalmente per avviare un processo. Possiamo costruire un processo con i comandi che puliranno la console.

ProcessBuilder() accetta i comandi da eseguire e i suoi argomenti. Il problema con questo approccio è che diversi sistemi operativi possono avere diversi comandi per pulire lo schermo della console. Ecco perché, nel nostro esempio, controlliamo il sistema operativo corrente.

Infine, stiamo usando la classe Process per avviare un nuovo processo con inheritIO per impostare i canali di input e output standard sul canale I/O di 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);
    }
  }
}
Autore: 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

Articolo correlato - Java Console