您好,登錄后才能下訂單哦!
這篇文章主要介紹“java清屏代碼怎么寫”,在日常操作中,相信很多人在java清屏代碼怎么寫問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”java清屏代碼怎么寫”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
其實不止是java,還有python,c語言,大部分語言都沒有辦法直接清屏,想要清屏就需要調用系統的函數(其實是命令)。因為清屏這個功能需要深入到系統內核進行操作,而普通的java程序是沒有辦法進入內核的(其實并不是沒有,在學習操作系統的相關課程之后就知道如何讓java程序進入內核態)。簡單的來說,操作系統分為用戶態和內核態,而清屏的功能只有內核態可以實現,java程序只是用戶態,所以它無法實現清屏,只能通過內核提供的命令來進行清屏。
關于用戶態和內核態的知識其實對于初學java的程序員來說不需要掌握太多,只需要知道java沒有直接清屏的功能就行了。
實現java的清屏其實和python使用的是同樣的方法,java也提供了相關的包可以讓java去使用cmd命令。接下來我們來介紹一下java如何調用cmd命令。
以下是一個java調用cmd的ping命令的案例,具體代碼介紹已經寫在注釋里了。
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class cmd{
public static void main(String[] args) {
String command = "ping www.neiyidaogou.com";//要輸入的命令的字符串
try {//使用命令的過程可能會出現失敗,需要捕獲異常
Process process = Runtime.getRuntime().exec(command);
//使用process可以執行命令
process.waitFor();
// 導致當前線程等待,如有必要,一直要等到由該 Process對象表示的進程已經終止。
//如果已終止該子進程,此方法立即返回。
//如果沒有終止該子進程,調用的線程將被阻塞,直到退出子進程。
//根據慣例,0 表示正常終止
BufferedReader out = new BufferedReader(
new InputStreamReader(process.getInputStream(), "GBK")); //獲取命令的輸出流
String outline = null;
while ((outline = out.readLine()) != null) {
System.out.println(outline);
}//輸出命令的輸出流
System.out.println("狀態值為:" + process.exitValue()); // 輸出命令的返回值(執行狀態,0為成功)
} catch (Exception e) {
e.printStackTrace();
}
}
}
從上面的代碼可以學習到,使用process的Runtime.getRuntime().exec(command)
就可以執行cmd的命令,但是如果要看到cmd命令返回的結果,需要使用process.getInputStream()
來獲取cmd的輸出流。
上面版本的process是一種比較簡單的執行命令提示符的方法,但這種方法小編用來實現清屏的時候卻出現了差錯。但是,他的進階版——processbuilder就沒有這樣的問題,接下來我們采用processbuilder進行清屏代碼的實現:
public class cmd{
public static void main(String[] args) {
System.out.println("打印一些無用的內容");
System.out.println("打印一些無用的內容");
System.out.println("打印一些無用的內容");
System.out.println("打印一些無用的內容");
System.out.println("打印一些無用的內容");
try {//使用命令的過程可能會出現失敗,需要捕獲異常
// Process process = Runtime.getRuntime().exec("cls");
new ProcessBuilder("cmd", "/c", "cls")
// 將 ProcessBuilder 對象的輸出管道和 Java 的進程進行關聯,這個函數的返回值也是一個
// ProcessBuilder
.inheritIO()
// 開始執行 ProcessBuilder 中的命令
.start()
// 等待 ProcessBuilder 中的清屏命令執行完畢
// 如果不等待則會出現清屏代碼后面的輸出被清掉的情況
.waitFor(); // 清屏命令
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("現在沒有無用內容了,我們來說點重要滴事情");
System.out.println("學編程,哪家強?互聯網上億速云放光芒");
}
}
到此,關于“java清屏代碼怎么寫”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。