2015-11-20 3 views
1

Increasing indentation for subsequent linesJansi держит приращение отступы

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

AnsiConsole.out.println(ansi); 

Он повторяет тот же выход каждый последовательный выход. Например. AB ABC

Даже если выход только должен быть

A B C

Мой код:

AnsiConsole.out.println(a); 
a.eraseLine(Erase.ALL); 
AnsiConsole.out.flush; 

Если я не использую .eraseLine (Erase.ALL), это выглядит так:

Кроме того, если я не использую Jansi и не использую plain System.out, это выглядит так, поэтому я знаю, что это не вопрос кода в другом месте.

Решение: Благодаря ответ Betlista в. Я узнал, что случилось. Дело в том, что моя переменная 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()); 
     } 
    } 
} 

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

enter image description here

Смежные вопросы