这篇文章主要介绍“java清屏代码怎么写”,在日常操作中,相信很多人在java清屏代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java清屏代码怎么写”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

java为什么不能直接清屏

其实不止是java,还有python,c语言,大部分语言都没有办法直接清屏,想要清屏就需要调用系统的函数(其实是命令)。因为清屏这个功能需要深入到系统内核进行操作,而普通的java程序是没有办法进入内核的(其实并不是没有,在学习操作系统的相关课程之后就知道如何让java程序进入内核态)。简单的来说,操作系统分为用户态和内核态,而清屏的功能只有内核态可以实现,java程序只是用户态,所以它无法实现清屏,只能通过内核提供的命令来进行清屏。

关于用户态和内核态的知识其实对于初学java的程序员来说不需要掌握太多,只需要知道java没有直接清屏的功能就行了。

如何实现java的清屏

实现java的清屏其实和python使用的是同样的方法,java也提供了相关的包可以让java去使用cmd命令。接下来我们来介绍一下java如何调用cmd命令。

java调用cmd命令实例

以下是一个java调用cmd的ping命令的案例,具体代码介绍已经写在注释里了。

importjava.io.BufferedReader;importjava.io.InputStreamReader;publicclasscmd{publicstaticvoidmain(String[]args){Stringcommand="pingwww.yisu.com";//要输入的命令的字符串try{//使用命令的过程可能会出现失败,需要捕获异常Processprocess=Runtime.getRuntime().exec(command);//使用process可以执行命令process.waitFor();//导致当前线程等待,如有必要,一直要等到由该Process对象表示的进程已经终止。//如果已终止该子进程,此方法立即返回。//如果没有终止该子进程,调用的线程将被阻塞,直到退出子进程。//根据惯例,0表示正常终止BufferedReaderout=newBufferedReader(newInputStreamReader(process.getInputStream(),"GBK"));//获取命令的输出流Stringoutline=null;while((outline=out.readLine())!=null){System.out.println(outline);}//输出命令的输出流System.out.println("状态值为:"+process.exitValue());//输出命令的返回值(执行状态,0为成功)}catch(Exceptione){e.printStackTrace();}}}

从上面的代码可以学习到,使用process的Runtime.getRuntime().exec(command)就可以执行cmd的命令,但是如果要看到cmd命令返回的结果,需要使用process.getInputStream()来获取cmd的输出流。

进阶版process

上面版本的process是一种比较简单的执行命令提示符的方法,但这种方法小编用来实现清屏的时候却出现了差错。但是,他的进阶版——processbuilder就没有这样的问题,接下来我们采用processbuilder进行清屏代码的实现:

publicclasscmd{publicstaticvoidmain(String[]args){System.out.println("打印一些无用的内容");System.out.println("打印一些无用的内容");System.out.println("打印一些无用的内容");System.out.println("打印一些无用的内容");System.out.println("打印一些无用的内容");try{//使用命令的过程可能会出现失败,需要捕获异常//Processprocess=Runtime.getRuntime().exec("cls");newProcessBuilder("cmd","/c","cls")//将ProcessBuilder对象的输出管道和Java的进程进行关联,这个函数的返回值也是一个//ProcessBuilder.inheritIO()//开始执行ProcessBuilder中的命令.start()//等待ProcessBuilder中的清屏命令执行完毕//如果不等待则会出现清屏代码后面的输出被清掉的情况.waitFor();//清屏命令}catch(Exceptione){e.printStackTrace();}System.out.println("现在没有无用内容了,我们来说点重要滴事情");System.out.println("学编程,哪家强?互联网上亿速云放光芒");}}

到此,关于“java清屏代码怎么写”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!