Янси продолжает увеличивать отступ
Я не могу избавиться от ранее напечатанных строк. Если я просто
AnsiConsole.out.println(ansi);
Он повторяет один и тот же вывод каждый последующий вывод. Например, AB ABC
Даже если на выходе предполагается только
A B C
Мой код:
AnsiConsole.out.println(a);
a.eraseLine(Erase.ALL);
AnsiConsole.out.flush;
Если я не использую a.eraseLine(Erase.ALL), это выглядит так:
Кроме того, если я не использую Jansi и не использую обычный System.out, это выглядит так, так что я знаю, что это не вопрос кода в другом месте.
Решение: благодаря ответу Бетлисты. Я узнал, что случилось. Дело в том, что моя переменная ansi была вызвана с использованием конструктора Ansi, а не метода Ansi.ansi(). Это было то, что отличалось в моем коде. Благодарю.:)
1 ответ
Кажется, вы делаете что-то не так, но в вашем сообщении отсутствует много информации, за которой трудно следить...
... поэтому я напишу, как это работает для меня:
Я использую maven с jansi в версии 1.11, протестированной на Windows 7.
Я просто следовал за информацией на https://github.com/fusesource/jansi и моим кодом
package jansi;
import java.io.IOException;
import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.Ansi.Color;
import org.fusesource.jansi.AnsiConsole;
public class Main {
public static void main(String[] args) throws IOException {
AnsiConsole.systemInstall();
String[] sa = {"A", "B", "C"};
Color[] ca = {Color.RED, Color.GREEN, Color.BLUE};
for (int i = 0; i < sa.length; ++i ) {
System.out.println(Ansi.ansi().eraseLine().fg(ca[i]).a(sa[i]).reset());
}
}
}
делает именно то, что я ожидал, и вот результат: