如何更新已在Java中输出的值?

时间:2012-10-10 07:38:15

标签: java refresh line

  

可能重复:
  Using Java, how do I create a console application which manipulates text in system.out?

我完全不知道如何提出这个问题。如果有人进行谷歌搜索,我保证会出现在某个地方(具有讽刺意味的是我不知道如何搜索它)。

我知道你可以用Java输出数据。一个例子是使用System.out.println。如果要打印更新值,请再次使用该语句,并打印一个包含更改值的新行。我不想每次改变时都继续使用print / println。这会产生大量的陈述。我正在寻找要刷新的那一行。因此,如果存在新值,则表示每秒刷新一次以显示新值。

x的值是:5

现在,它会不断更新,如果更改后数字会改变(因此数字6将在屏幕5的完全相同位置替换为5)。

希望我已经说清楚了。我在大学里经历了一门Java编程课程并没有看到这一点(不是课程涵盖了所有可能的角度)。

3 个答案:

答案 0 :(得分:2)

你无法用开箱即用的Java做到这一点。 Java与控制台交互的方式几乎完全通过流。您只能将内容附加到(不可重绕)流,不会覆盖或从中删除。

在控制台的情况下有一些例外,主要在Console类中找到,它允许少量直接操作,但也不允许重写现有文本。

你可以做以下任何事情:

  • 只需再次打印该行,将旧行留在上面
  • 使用像JCurses这样的库来直接控制输出窗口
  • 尝试使用外部命令(clsclear清除控制台,具体取决于您的操作系统)

除了第一个选项之外的所有选项都需要花费大量精力并且会给代码增加相当大的复杂性,所以如果该功能绝对需要

,则应该只考虑它们。

答案 1 :(得分:0)

如果输出到命令提示符,则无法更新该值。

在图形环境中,您可以尝试设置一个计时器,根据更新后的值检查旧值,如果它们不匹配,请更新标签。

或者运行一个线程来检查值。

答案 2 :(得分:0)

如果我理解正确,你想避免多次调用println。

编写更新方法并在update方法中放入println语句。因此,每次调用更新时,都会打印变量的新值。