我正在创建一个java应用程序,在执行期间的某个时刻需要通过刷新在一行上显示多个输出。它需要显示每个输出等待用户确认。我一直坚持如何暂停输出直到输入被按下。使用以下方法:
System.out.print("Test 1\r");
System.in.read();
System.out.print("Test 2\r");
但是当我使用这种方法时,光标会跳到一个新的行,就像这样
Test 1
Test 2
有没有人知道这方面的轻松解决方法?
答案 0 :(得分:2)
我的解决方案是使用ANSI,因为它受OSX终端的支持。在我的scanner.next()后,我打印了一个:“1A”ANSI字符,将光标向上移动一行,然后使用“\ r”将行返回到行的开头。以下是代码的外观:
for(int i = 0; i<numTimesToRepeat; i++){
System.out.print("Print line " + i);
System.in.read();
System.out.print("\u001b[1A");
System.out.print("\r");
}
感谢所有人的帮助。
答案 1 :(得分:0)
唯一可行的方法是使用退格程序,我认为,但\b
在eclipse控制台中没有用。 How to get backspace \b to work in Eclipse's console?如果你没有使用Eclipse,你可以尝试使用退格程序。
答案 2 :(得分:0)
如果您想从控制台获取输入,请使用System.out.println()
打印输出并使用BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
。
答案 3 :(得分:0)
简单地说
System.out.println("\nPress <Enter> to continue...");
System.in.read();