0

可能重复:
使用 Java,我如何创建一个控制台应用程序来操作 system.out 中的文本?

我完全不知道如何问这个问题。我保证如果有人用谷歌搜索它就在某个地方(讽刺的是我不知道如何搜索它)。

我知道你可以用 Java 输出数据。一个例子是使用 System.out.println。如果您想打印更新值,请再次使用该语句,它会打印一个带有更改值的新行。我不想每次更改时都继续使用 print/println。那会产生大量的陈述。我正在寻找要刷新的那一行。所以说它每秒刷新一次以显示一个新值(如果有的话)。

x 的值为:5

现在,它会不断刷新,如果它被改变,数字也会改变(所以数字 6 将在屏幕 5 曾经坐着的完全相同的位置替换 5)。

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

4

3 回答 3

2

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

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

你可以做任何这些事情:

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

除了第一个选项之外,所有选项都需要中等程度的努力,并且会为您的代码增加相当大的复杂性,因此您应该只在绝对需要该功能时才考虑它们。

于 2012-10-10T07:44:50.080 回答
0

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

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

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

于 2012-10-10T07:42:42.437 回答
0

如果我理解正确,您希望避免多次调用 println。

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

于 2012-10-10T07:44:48.817 回答