操纵或编辑System.out(java)

Nic*_*tel 0 java system.out

这可以用Java做,比如使用System.out.println(...)然后以某种方式编辑写入的文本?

例如,我有一个基本的应用程序执行某些任务,我想让用户保持更新状态,比如在完成之前显示百分比.

因此,当任务开始时,它将在System.out流中显示类似的内容

Doing x task ... 0%
Run Code Online (Sandbox Code Playgroud)

然后更新正在进行时显示的%.任务完成后,将其更改为"完成!" 而不是显示100%或一些随机百分比.

对不起,如果这是一个糟糕且难以理解的问题,我真的不知道如何把它和英语不是我的母语.随意编辑问题以使其更清晰

Mar*_*nik 6

不要用println; print改为使用并\r在行尾添加.例如,

System.out.print("Doing x task... " + percentDone + "%\r");
System.out.flush();
Run Code Online (Sandbox Code Playgroud)

\r(回车)字符返回"插入点"返回到当前行的开始,而不会前进到下一个.之后打印文本时,它将覆盖现有行.

使用print它时,flush手动输出流变得至关重要.否则,在填充内部缓冲区之前,您将不会收到任何输出.

请注意,此技巧在Eclipse,NetBeans和大多数其他IDE的控制台输出中不起作用,因为它们不会解释特殊控制字符,如\r\b.您必须从命令行使用它.

  • 很高兴知道,IntelliJ 总是领先一步...... (2认同)