我正在尝试制作一个java应用程序来显示不同城市的实时信息。但我需要把它显示在控制台上。我的问题是,我可以使用循环,但它打印换行时,时间在变化。我想知道是否有一种方法,使显示实时无需打印到newline一次又一次。谢谢你的帮助。
7ivaypg91#
问:我想知道是否有一种方式来展示。。。没有新线。a:是的。问题是您似乎有一个控制台模式的应用程序,它使用system.out.println()(或等效的)。解决办法是使用“其他东西”。理想情况下,您可以使用gui,比如javaswing或者,如果您仍然想要一个控制台模式的应用程序,您可以使用java的“curses”类型库。例如:终端和ncurses java库
smdnsysy2#
使其显示在控制台上对于窗口命令提示符,我知道 \r 在一行的末尾,而不是 \n 或者 \r\n ,将光标返回到当前行的开头,因此下一个打印文本将打印在上一个文本上。我不知道这在linux上是否有效。我知道它在某些ide的控制台输出窗格中不起作用。 \r 表现得像 \n 在日 eclipse 中。请注意,在windows命令提示符中,以下命令将在单行上显示正在运行的时钟:
\r
\n
\r\n
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); for (;;) { // loop forever LocalTime time = LocalTime.now(); System.out.print(time.format(formatter) + "\r"); TimeUnit.NANOSECONDS.sleep(1_000_000_000 - time.getNano()); }
注1:代码使用 print() ,不是 println() ,自从 ln 将打印 \r\n 我们不想要。注2:它在现有文本上打印,它不会清除行,因此如果一行打印 Hello World\r 那么 Goodbye\r ,结果是文本 Goodbyeorld . 您需要用空格填充以清除任何现有文本。这当然不是像这样的固定宽度输出的问题 HH:mm:ss .
print()
println()
ln
Hello World\r
Goodbye\r
Goodbyeorld
HH:mm:ss
2条答案
按热度按时间7ivaypg91#
问:我想知道是否有一种方式来展示。。。没有新线。
a:是的。
问题是您似乎有一个控制台模式的应用程序,它使用system.out.println()(或等效的)。解决办法是使用“其他东西”。
理想情况下,您可以使用gui,比如javaswing
或者,如果您仍然想要一个控制台模式的应用程序,您可以使用java的“curses”类型库。例如:终端和ncurses java库
smdnsysy2#
使其显示在控制台上
对于窗口命令提示符,我知道
\r
在一行的末尾,而不是\n
或者\r\n
,将光标返回到当前行的开头,因此下一个打印文本将打印在上一个文本上。我不知道这在linux上是否有效。
我知道它在某些ide的控制台输出窗格中不起作用。
\r
表现得像\n
在日 eclipse 中。请注意,在windows命令提示符中,以下命令将在单行上显示正在运行的时钟:
注1:代码使用
print()
,不是println()
,自从ln
将打印\r\n
我们不想要。注2:它在现有文本上打印,它不会清除行,因此如果一行打印
Hello World\r
那么Goodbye\r
,结果是文本Goodbyeorld
. 您需要用空格填充以清除任何现有文本。这当然不是像这样的固定宽度输出的问题HH:mm:ss
.