Jansi:讓控制檯輸出彩色字符的方法

給政府做項目時我們一般都使用的是Java,服務器一般都是Weblogic或Tomcat(開發環境)。經常使用Java的人都知道,它在後臺輸出的信息一般都是黑底白字,或在Linux環境中可以改成黑綠字等,反正是很單調。我也從來沒想過它能夠變成彩色,但今天我發現了一個java類庫——Jansi——它能夠讓你在控制檯輸出色彩繽紛的文字。先給大家看看效果: 

 

Jansi雖然是一個很小的Java包,卻有着豐富的接口,讓你配置各種輸出效果,但用法非常的簡單:

  1. import static org.fusesource.jansi.Ansi.*;  
  2. import static org.fusesource.jansi.Ansi.Color.*;  
  3. ...  
  4. System.out.println( ansi().eraseScreen().fg(RED).a("Hello").fg(GREEN).a(" World").reset() ); 

相信你從上面的語義中能看出它是輸出了紅色的「Hello」和綠色的「World」。

它還有一種更簡潔的寫法:

  1. System.out.println( ansi().eraseScreen().render("@|red Hello|@ @|green World|@") ); 

這種寫法能實現相同的效果。

上面的用法是調用了Jansi輸出接口生成彩色字。Jansi可以讓你的System.out.println()方法直接輸出彩色字體,用法是使用System.out.println()前,先執行:

  1. import org.fusesource.jansi.AnsiConsole;  
  2. ...  
  3. AnsiConsole.systemInstall(); 

Jansi的這種技能實際上是利用ANSI轉義代碼來控制終端輸出。很多高人用顏色各異的字符在終端屏幕上平湊出各種神奇複雜的精彩圖案。這些代碼的源文件通常保持爲.ans後綴的文件,下面的這個圖案就是利用Jansi輸出MW-TSA2.ANS得到的,很神奇吧。