如何在 Java 中清除控制檯
Rupam Yadav
2023年10月12日
在本教程中,我們將看一下在 Java 中清理控制檯螢幕的兩種方法。我們將通過例項來學習如何在執行時執行 Java 清屏命令。
在 Java 中使用 ANSI 轉義碼清除控制檯
我們可以使用稱為 ANSI 轉義碼序列的特殊程式碼來改變游標位置或顯示不同的顏色。這些序列可以被解釋為由位元組和字元組合而成的命令。
在 Java 中要清除控制檯,我們將使用轉義碼\033[H\033[2J
。這組奇怪的字元代表了清理控制檯的命令。為了更好的理解它,我們可以將它分解。
前四個字元\033
的意思是 ESC
或轉義字元。結合 033
和 [H
,我們就可以將游標移動到指定位置。最後一個字元,033[2J
,可以清除整個螢幕。
我們可以看看下面的例子,就是使用這些轉義碼。我們還使用了 System.out.flush()
,當使用 System.out.print()
時,它專門用來清除剩餘的位元組,這樣控制檯螢幕上就不會有任何遺漏。
舉個例子。
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();
}
}
在 Java 中使用 ProcessBuilder
清除控制檯
在這個方法中,我們將使用一個 ProcessBuilder
,它是一個主要用於啟動程序的類。我們可以用清理控制檯的命令建立一個程序。
ProcessBuilder()
接收要執行的命令及其引數。這種方法的問題是,不同的作業系統可以有不同的命令來清理控制檯螢幕。這就是為什麼在我們的例子中,我們檢查當前的作業系統。
最後,我們是用 Process
類啟動一個新的程序,用 inheritIO
將標準輸入輸出通道設定為 Java 的 I/O 通道。
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 Yadav
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