這在過去的幾天裏一直在困擾着我,因爲它曾經工作過。我升級了我的intellij,現在它不起作用。我不想回去,但我需要一個答案。IntelliJ Idea調試/運行控制檯; System.out.flush not flushing
所以,我正在編寫一個控制檯應用程序,並在運行時,我想要一個shell'd顯示進度。它在運行時工作正常,但是當我在IntelliJ Idea中進行調試時,除非緩衝區包含換行符,否則System.out.flush()不會刷新到控制檯。我寫了下面的單元測試來看看它是我還是我的應用程序。
@Test
public void flushTest() {
int loops = 100;
for (int i = 0 ; i < 100 ; ++i) {
System.out.print("This is a print, does it flush : " + i + "\r");
if (i %10 == 0) {
System.out.print("\n");
}
System.out.flush();
}
}
擾流板,它是應用程序。我不知道發生了什麼變化,但是如果不在命令行上進行完整的構建和運行,就很難調試顯示問題。如果有人能幫我弄清楚爲什麼會發生變化和/或幫助我修復它,所以它會正常沖洗,我會非常感激。
我認爲它發生的原因是在這篇文章中解釋。 http://stackoverflow.com/questions/7166328/when-why-to-call-system-out-flush-in-java。但是,它並沒有真正解釋如何解決這個問題。 – Brion
當我最近更新到2016.3版本時發現相同。我無法在YouTrack上找到這個問題,所以在這裏添加它https://youtrack.jetbrains.com/issue/IDEA-166108 – user6579871