2012-10-10 23 views
0

可能重複:
Using Java, how do I create a console application which manipulates text in system.out?如何更新已經在Java中輸出的值?

我完全不知道怎麼問這個問題。我保證,如果有人進行了Google搜索(諷刺的是,我不知道如何搜索它),它就在那裏。

我知道你可以用Java輸出數據。一個例子是使用System.out.println。如果要打印更新值,請再次使用該語句,並使用更改後的值打印新行。我不想每次更改時都繼續使用print/println。這將造成大量的陳述。我正在尋找那條線來刷新。所以說,如果有新值,則每秒刷新一次。

值X的是:5

現在,它是不斷刷新和數量將改變,如果它已被改變(從而數6將在完全相同的位置替換5用來在屏幕5上坐)。

希望我已經明確了這一點。我在大學學習了一門Java編程課程,但沒有看到這一點(並不是說課程涵蓋了所有可能的角度)。

+1

我認爲你最好的選擇是'假'清理屏幕,所以要麼打印一堆/ n要麼打印a/f(換頁)。你也可以使用Runtime.exec(「cls」); (如果你在Windows上運行),但這會使應用程序系統具體。 – Jay

+0

你在說什麼叫做終端I/O。這就是說,我不知道如何在Java中做到這一點。 – CrazyCasta

+1

解決問題的方法取決於打印輸出的終端。所以...你想在哪裏顯示你的輸出? Windows命令提示符? Linux終端?其他? – Lauri

回答

2

你不能用Java開箱即用。 Java與控制檯交互的方式幾乎完全是通過流。您只能將內容附加到(不可回捲)流中,而不能覆蓋或從中刪除。

在控制檯的情況下有一些例外,主要發生在Console類中,該類允許少量直接操作,但不允許重寫現有文本。

你可以做任何的那些事:

  • 只需再次打印線,留下舊它上面
  • 使用庫像JCurses採取輸出窗口
  • 嘗試的直接控制使用外部命令來清除控制檯(clsclear,這取決於你的操作系統)

除了第一個選項需要付出中等的努力,並且會增加代碼的複雜性,因此只有在該功能是時,才需要考慮這些功能,絕對需要

0

如果輸出到命令提示符,您將無法更新該值。

在圖形環境中,您可以嘗試設置一個計時器,以檢查舊值與更新後的值,如果它們不匹配,則更新標籤。

或者讓一個線程運行來檢查值。

0

如果我理解正確,您希望避免多次調用println。

編寫一個更新方法,並在update方法內部放置一個println語句。因此,每次調用更新時,變量的新值都將被打印。

相關問題