定时打印线

时间:2017-02-27 07:14:16

标签: java

如何在x毫秒内打印行并在前一行后打印x毫秒?

我正试图在控制台中制作一个'Lyric Video'。我尝试过使用

t.schedule(new TimerTask(){public void run(){System.out.print("");}}, 0, 1000);

但它每隔一秒打印一次。

我试过谷歌,但我似乎无法说出正确的话。

3 个答案:

答案 0 :(得分:3)

下面:

t.schedule(new TimerTask(){public void run(){System.out.print("");}}, 0, 1000);

1000表示执行该定时任务时的毫秒数。

或者更准确地说:期间 - 连续任务执行之间的时间(以毫秒为单位)。

所以:只需将其更改为x值。

真实在这里回答:不要盲目地使用你在某处找到的API。如有疑问,请转到javadoc并阅读您正在调用的方法,例如schedule()。在那里你会发现我上面引用的信息!

关于你的后续问题:再次;转到 Timer 类的javadoc。该类必须使用方法cancel()purge(),以防止将来执行。

换句话说:

  • 将1000更改为5000以更改打印语句之间的延迟
  • 如果您想在某次迭代后停止,请确保在某个时刻调用上述方法之一。

因此,当您想在10秒后停止时,您可以执行以下操作:

t.schedule(new TimerTask(){public void run(){ t.cancel();}}, 10 
1000);

答案 1 :(得分:0)

尝试将1000更改为您想要的毫秒数。这1000表示您正在等待的第二个。如果它是一个选项,你也可以尝试Thread.sleep()函数。 记住传递给该函数的值是以毫秒为单位。

希望它有所帮助! 最好的问候:)

答案 2 :(得分:0)

代码中的值1000实际上是毫秒值。

t.schedule(new TimerTask(){public void run(){System.out.print("");}}, 0, 1000);

您可以根据自己的要求进行更改。如果您想等待5秒钟,可以将其更改为5 * 1000 = 5000

t.schedule(new TimerTask(){public void run(){System.out.print("");}}, 0, 5000);