java - pantalla - ¿Cómo puedo volver al comienzo de una línea en una consola?
metodo limpiar consola java (3)
¿Cómo puedo volver al inicio de una línea y sobrescribir lo que ya se ha emitido en la consola? Lo siguiente no parece funcionar:
System.out.print(mystuff+''/r'');
Mi suposición (y es una suposición) sería que ''/ r'' funciona, pero la consola que está usando no la trata como es de esperar. ¿Qué consola estás usando? Si es algo así como la salida de la consola en su IDE, ¿lo ha probado en una línea de comando real?
Si solo desea escribir una nueva línea en la consola, debe usar el método println ():
System.out.println(mystuff);
Sin embargo, esto no eliminará lo que ya está en la línea. En realidad, dado que System.out es un PrintStream, que es un tipo de OutputStream, es básicamente difícil de hacer, aunque puede encontrar maneras específicas de hacerlo.
Es posible que tenga más suerte al utilizar una implementación de Java de una biblioteca de curses, como JavaCurses .
Sospecho que su cursor se está moviendo al frente de la línea. El texto que ya tienes no está desapareciendo porque no lo has sobrescrito con nada. Puede generar espacios para poner en blanco la línea y luego agregar otra / r.
Acabo de probar lo siguiente en Windows XP y AIX y funciona como se esperaba:
public class Foo {
public static void main(String[] args) throws Exception {
System.out.print("old line");
Thread.sleep(3000);
System.out.print("/rnew");
}
}
Obtengo una "línea vieja" impresa, un retraso de 3 segundos, y luego una "línea vieja" cambia a "nueva línea"
Intencionadamente hice la primera línea más larga que la segunda para demostrar que si deseas borrar toda la línea, debes sobrescribir el final con espacios.
También tenga en cuenta que la secuencia de escape "/ b" hará una copia de seguridad de 1 espacio, en lugar de hacerlo al comienzo de la línea. Entonces, si solo quisieras borrar los últimos 2 caracteres, podrías escribir:
System.out.println("foo/b/bun")
y diviértete.