Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何更新已在Java中输出的值?_Java_Refresh_Line - Fatal编程技术网

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

如何更新已在Java中输出的值?,java,refresh,line,Java,Refresh,Line,可能重复: 我完全不知道该怎么问这个问题。我保证,如果有人用谷歌搜索的话,它就在某个地方(讽刺的是,我不知道如何搜索它) 我知道可以用Java输出数据。例如,可以使用System.out.println。如果要打印更新值,请再次使用该语句,它将打印一行具有更改值的新行。我不想每次更改时都继续使用print/println。这将产生大量的声明。我在找那一行要刷新的。因此,假设它每秒刷新一次,以显示一个新值(如果有) x的值为:5 现在,它不断刷新,如果数字被更改,它将更改(因此数字6将替换屏幕5

可能重复:

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

我知道可以用Java输出数据。例如,可以使用System.out.println。如果要打印更新值,请再次使用该语句,它将打印一行具有更改值的新行。我不想每次更改时都继续使用print/println。这将产生大量的声明。我在找那一行要刷新的。因此,假设它每秒刷新一次,以显示一个新值(如果有)

x的值为:5

现在,它不断刷新,如果数字被更改,它将更改(因此数字6将替换屏幕5上的5,位置与屏幕5以前所在的位置完全相同)


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

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

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


或者运行线程检查值。

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


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

使用现成的Java无法真正做到这一点。Java与控制台交互的方式几乎完全是通过流进行的。您只能将内容附加到(不可倒带)流中,而不能覆盖或从中删除

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

您可以执行以下任一操作:

  • 只需再次打印该行,将旧行保留在其上方
  • 使用类似于直接控制输出窗口的库
  • 尝试使用外部命令清除控制台(
    cls
    clear
    ,具体取决于您的操作系统)

除了第一个选项外,所有的代码都需要中等程度的工作量,而且代码的复杂度也很高,所以只有在绝对需要的时候才考虑它们。

我认为你最好的选择是“冒充”清除屏幕,所以要么打印一堆/n,要么打印A/F(表单提要)。您还可以使用Runtime.exec(“cls”);(如果您在Windows上运行),但这会使应用程序系统特定。您所说的是所谓的终端I/O。也就是说,我不知道如何在Java中实现。问题的解决方案取决于您将输出打印到的终端。所以您希望在哪里显示输出?Windows命令提示符?Linux终端?其他?要在Windows命令提示符中显示。例如,如果我的应用程序是一个时钟,我不希望当前时间(每秒)打印新行。当前时间:1:15:30当前时间:1:15:31当前时间:1:15:32我希望当前时间被覆盖并用最新时间更新。