在 Scala 或 Java 中,如何打印一行到控制台替换其之前的内容而不是追加?
Scala 应用程序执行一些数据处理。最好以百分比显示处理进度,覆盖更改时的先前值,而不是将新值附加到已显示的值。如何达到这样的效果呢?我在 Linux 上使用 Scala 2.8。
A Scala application does some data processing. It would be nice to show processing progress in percents overwriting previous value on change rather than appending a new value to what's already displayed. How to acheive this effect? I use Scala 2.8 on Linux.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
最简单的选择是使用不带换行符的回车符
"\r"
或退格字符"\u0008"
。如果您退格,则需要跟踪已发出的字符数量,以便可以备份足够的字符(并清除多余的字符)。如果回车,则需要重写整行(并写入空格以删除多余的内容)。Your easiest options are to use the carriage return without linefeed
"\r"
or the backspace character"\u0008"
. If you backspace, you need to keep track of how many characters you've emitted so you can back up enough (and blank out any excess). If you carriage return, you need to rewrite the entire line (and write spaces to blank out any excess).如果您使用 C/C++ 进行编程,答案无疑是“ncurses”。
您可能会对 Java 中的curses 实现感兴趣:
Java Curses
If you were programming in C/C++, the answer would unequivocably be "ncurses".
There is a curses implemention in Java you might be interested in:
Java Curses