Java System.err.println延迟?

时间:2017-03-31 01:24:32

标签: java escaping console-application system.out system.err

当我编写如下的Java代码时:

for (int iRun = 0; iRun <nRun; iRun++){
   doSomething();
   if (100 < nRun && iRun % (nRun / 100) == 0)
      System.err.print("\rWorking " + Math.ceil(100.0 * iRun / nRun) + "%");
}
System.err.println("\rWorking " + Math.ceil(100.0 * iRun / nRun) + "%");
System.err.println("fin");

, 它有时返回

Working 100.0%
fin

, 机器人并不总是...... 它还打印

Working 100.0%Working 100.0%
fin

我不认为,在我的代码中,任何线程当时都会调用System.err#println

即使我放入Thread.sleep(100);,它也经常打印Working 100.0%两次。我没有尝试超过100秒。(我不确定它是否真的有效,进一步......我尝试过的也不错......)

如何确保代码仅以第一种方式打印? 如果有某个答案,它也可用于System.out::println

0 个答案:

没有答案