簡體   English   中英

如何在一個控制台替換鍵入的文本時,一些打印呢?

[英]How do I replace typed text in a console when something is printed there?

我正在從通過從批處理文件運行應用程序而創建的控制台讀取和寫入。

我正在創建一個小的servlet,並且遇到一個問題,即在我鍵入時,在我鍵入的位置的末尾打印了一些東西(例如客戶端連接或斷開連接之類的東西)。 它基本上使一切看起來都很好笑,我一直在嘗試尋找一種方法來復制我輸入的內容,在其位置打印出發生的內容(即客戶端x連接!),然后將我輸入的命令粘貼到下面,以便我可以繼續。

我認為我已經將其工作了(替換了我鍵入的內容),但是我想不出一種方法來復制輸入的內容或將其放在下一行,以便我可以繼續輸入。

每當要打印出任何內容時,都會調用此方法,它基本上將時間戳記在輸出上。

public void say(String s){
    Calendar calendar = Calendar.getInstance();
    Date now = calendar.getTime();
    Timestamp current = new Timestamp(now.getTime());
    SimpleDateFormat date = new SimpleDateFormat("HH:mm:ss");
    String time = date.format(current);
    //how it gets printed
    System.out.println("\r" + time + "> " + s);
}

我使用的等待輸入線程:

Thread thread = new Thread(){
    public void run(){
        Scanner scan = new Scanner(System.in);
        while(scan.hasNextLine()){
            String s = scan.nextLine();
            //do something with s?
        }
    }
};
thread.start();

任何幫助將不勝感激!

也許在say方法中,在輸出任何內容之前,它可以檢查io緩沖區或管道以查看其中是否包含某些內容(例如:您正在鍵入的新命令)。 如果是這樣,請保存它,執行您想做的事情,然后將其放回緩沖區中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM