在java中清除屏幕选项

use*_*004 10 java

是否有任何选项可以将java中的屏幕清除为C中的clrscr().

Bil*_*ard 11

随着肮脏的黑客去,我喜欢msparer的解决方案.我见过的一种更脏的方法(我自己也不会这样做.我发誓.真的.)是给控制台写一堆换行符.这根本不会清除屏幕,但会为用户创建清晰屏幕的错觉.

char c = '\n';
int length = 25;
char[] chars = new char[length];
Arrays.fill(chars, c);
System.out.print(String.valueOf(chars));
Run Code Online (Sandbox Code Playgroud)

  • 这有什么不同于`System.out.print("\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n n \n \n \n \n \n \n";);`哪一行而不是五行? (3认同)
  • 我不敢写下这个答案.尼斯:-) (2认同)
  • @Tenner:我的代码可以写成一个传入字符和长度的函数。除此之外,没有真正的区别。 (2认同)

Jam*_*nen 7

如果你在谈论控制台,那么没有.写入控制台只是输出流的一种特殊情况.输出流对屏幕一无所知,因为它们可以很容易地重定向到文件或其他系统设备.


msp*_*msp 7

如果您正在谈论控制台应用程序,那么AFAIK就没有明确的屏幕选项.一个非常脏的选项是调用底层操作系统的clear screen命令.

那就是这样的

Runtime.getRuntime().exec("cls");
Run Code Online (Sandbox Code Playgroud)

对于Windows或

Runtime.getRuntime().exec("clear");
Run Code Online (Sandbox Code Playgroud)

对于其他操作系统的负载.你可以找到操作系统System.getProperty("os.name").

  • 我认为`cls`是一个内置函数,而不是一个实际的可执行文件. (5认同)
  • 它不起作用.我尝试在Windows XP中. (2认同)

LB4*_*B40 5

在linux上,您可以执行以下操作:

System.out.println("\f");
Run Code Online (Sandbox Code Playgroud)

你也可以使用Jcurses


jit*_*ter 5

对于任何支持ANSI转义的控制台,以下都可以工作(例如在Win98控制台中工作).

private final String ANSI_CLS = "\u001b[2J";
....
System.out.print(ANSI_CLS);
System.out.flush();
...
Run Code Online (Sandbox Code Playgroud)

从Win NT开始,这将不再适用,你也可以

否则你运气不好.

顺便说一下.你必须记住,System.out并且System.err不必是控制台,他们可以设置为永远(写入文件,例如)一个用户,清除屏幕根本没有任何意义.