这可以在 Java 中实现吗,比如使用 System.out.println(...),然后以某种方式编辑写入的文本?
例如,我有一个执行某些任务的基本应用程序,我希望让用户保持最新状态,例如显示完成之前的百分比。
因此,当任务启动时,它会在 System.out 流中显示类似的内容
Doing x task ... 0%
然后更新取得进展时显示的百分比。每当任务完成时,将其更改为“完成!”而不是显示 100% 或某个随机百分比。
抱歉,如果这是一个糟糕且难以理解的问题,我真的不知道如何表达,而且英语不是我的母语。请随意编辑问题以使其更加清晰
最佳答案
不要使用println
;使用 print
代替,并在行末尾添加 \r
。例如,
System.out.print("Doing x task... " + percentDone + "%\r");
System.out.flush();
\r
(回车)字符将“插入点”返回到当前行的开头,而不前进到下一行。当您之后打印文本时,它将覆盖现有行。
使用print
时,必须手动刷新
输出流。否则,在内部缓冲区填满之前,您将不会收到任何输出。
请注意,此技巧在 Eclipse、NetBeans 和大多数其他 IDE 的控制台输出中不起作用,因为它们不解释特殊控制字符,例如 \r
或 \b
。您必须从命令行使用它。
关于java - 操作或编辑 System.out (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20823690/