Янси продолжает увеличивать отступ

Увеличение отступа для последующих строк

Я не могу избавиться от ранее напечатанных строк. Если я просто

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());
        }
    }
}

делает именно то, что я ожидал, и вот результат:

Другие вопросы по тегам