2010-09-05 20 views
10

Un'applicazione Scala esegue alcuni processi di elaborazione dati. Sarebbe bello mostrare il progresso dell'elaborazione in percentuale a sovrascrivere il valore precedente sul cambiamento piuttosto che aggiungere un nuovo valore a ciò che è già visualizzato. Come raggiungere questo effetto? Uso Scala 2.8 su Linux.In Scala o Java, come stampare una riga in console sostituendo il suo contenuto precedente invece di accodare?

+7

(1 a 100) foreach {k => {Thread.sleep (200); printf ("\ r% 2d", k)}} – Eastsun

risposta

10

Le opzioni più semplici sono utilizzare il ritorno a capo senza avanzamento riga "\r" o il carattere backspace "\u0008". Se si esegue il backspace, è necessario tenere traccia di quanti caratteri sono stati emessi in modo da poter eseguire il backup abbastanza (e cancellare qualsiasi eccesso). Se si effettua il ritorno a capo, è necessario riscrivere l'intera riga (e scrivere spazi per escludere eventuali eccessi).

2

Se stavate programmando in C/C++, la risposta sarebbe inequivocabilmente "ncurses".

C'è un maledizioni L'implementazione in Java si potrebbe essere interessati a:

Java Curses

Problemi correlati