El tutorial o código que encontrarás en este post es la solución más rápida y válida que hallamos a esta duda o dilema.
Solución:
He implementado este tipo de cosas antes. No se trata tanto de Java, sino de qué caracteres enviar a la consola.
los key es la diferencia entre n
y r
.
n
va al comienzo de una nueva línea. Pero r
es solo retorno de carro – vuelve al principio de la misma línea.
Entonces, lo que debe hacer es imprimir su barra de progreso, por ejemplo, imprimiendo el string
"|======== |r"
En la siguiente marca de la barra de progreso, sobrescriba la misma línea con una barra más larga. (porque estamos usando r, nos quedamos en la misma línea) Por ejemplo:
"|========= |r"
Lo que debe recordar hacer es cuando termine, si luego solo imprime
"done!n"
Es posible que aún tenga algo de basura de la barra de progreso en la línea. Entonces, una vez que haya terminado con la barra de progreso, asegúrese de imprimir suficientes espacios en blanco para eliminarlo de la línea. Tal como:
"done |n"
Espero que ayude.
Hay https://github.com/ctongfei/progressbar, Licencia: MIT
Barra de progreso de la consola simple. La escritura de la barra de progreso ahora se ejecuta en otro subproceso.
Se recomiendan Menlo, Fira Mono, Source Code Pro o SF Mono para obtener efectos visuales óptimos.
Para fuentes Consolas o Andale Mono, utilice ProgressBarStyle.ASCII
(ver más abajo) porque los glifos de dibujo de cuadro no están alineados correctamente en estas fuentes.
Experto:
me.tongfei
progressbar
0.5.5
Uso:
ProgressBar pb = new ProgressBar("Test", 100); // name, initial max
// Use ProgressBar("Test", 100, ProgressBarStyle.ASCII) if you want ASCII output style
pb.start(); // the progress bar starts timing
// Or you could combine these two lines like this:
// ProgressBar pb = new ProgressBar("Test", 100).start();
some loop
...
pb.step(); // step by 1
pb.stepBy(n); // step by n
...
pb.stepTo(n); // step directly to n
...
pb.maxHint(n);
// reset the max of this progress bar as n. This may be useful when the program
// gets new information about the current progress.
// Can set n to be less than zero: this means that this progress bar would become
// indefinite: the max would be unknown.
...
pb.setExtraMessage("Reading..."); // Set extra message to display at the end of the bar
pb.stop() // stops the progress bar
Encontré que el siguiente código funciona correctamente. Escribe bytes en el búfer de salida. Tal vez esos métodos usando un escritor como el System.out.println()
El método reemplaza las ocurrencias de r
para n
para que coincida con el final de la línea nativa del objetivo (si no está configurado correctamente).
public class Main
public static void main(String[] arg) throws Exception /-\";
for (int x =0 ; x < 100 ; x++)
String data = "r" + anim.charAt(x % anim.length()) + " " + x;
System.out.write(data.getBytes());
Thread.sleep(100);
Si conservas alguna vacilación o disposición de aumentar nuestro ensayo eres capaz de ejecutar un exégesis y con deseo lo ojearemos.