2010-09-05 7 views
10

Una aplicación Scala realiza algunos procesos de datos. Sería bueno mostrar el progreso del procesamiento en porcentajes sobrescribiendo el valor anterior en cambio en lugar de agregar un nuevo valor a lo que ya se muestra. ¿Cómo lograr este efecto? Yo uso Scala 2.8 en Linux.En Scala o Java, ¿cómo imprimir una línea en la consola reemplazando su contenido anterior en lugar de agregarlo?

+7

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

Respuesta

10

Sus opciones más fáciles son utilizar el retorno de carro sin salto de línea "\r" o el carácter de retroceso "\u0008". Si retrocede, debe realizar un seguimiento de la cantidad de caracteres que ha emitido para que pueda realizar una copia de seguridad suficiente (y descartar cualquier exceso). Si su transporte de regreso, necesita volver a escribir la línea completa (y escribir espacios para borrar cualquier exceso).

2

Si estuviera programando en C/C++, la respuesta sería inequívocamente "ncurses".

Hay una IMPLEMENTACIÓN maldiciones en Java que podría estar interesado en:

Java Curses

Cuestiones relacionadas