[java] Jansi를 이용하여 자바 애플리케이션에서 터미널에서 파일 쓰기

자바 애플리케이션에서 터미널에서 파일을 쓰기 위해 Jansi라이브러리를 사용할 수 있습니다. Jansi는 터미널 색상 및 스타일을 제어하는 데 사용되는 자바 라이브러리입니다. 이러한 기능을 사용하여 터미널에서 파일을 쓰는 방법을 알아보겠습니다.

Jansi 라이브러리 추가

먼저, Jansi 라이브러리를 Maven이나 Gradle과 같은 빌드 도구를 사용하여 프로젝트에 추가해야 합니다. 아래는 Maven을 사용한 경우의 예입니다.

<dependency>
  <groupId>org.fusesource.jansi</groupId>
  <artifactId>jansi</artifactId>
  <version>1.18</version>
</dependency>

위의 코드를 pom.xml 파일에 추가하여 Jansi를 프로젝트에 추가합니다.

터미널에서 파일 쓰기

이제 Jansi를 사용하여 터미널에서 파일을 쓰는 방법을 알아보겠습니다. 아래는 예제 코드입니다.

import org.fusesource.jansi.AnsiConsole;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.PrintStream;

public class TerminalFileWriter {
    public static void main(String[] args) {
        // Jansi의 색상을 지원하기 위해 AnsiConsole을 초기화합니다.
        AnsiConsole.systemInstall();
        
        // 파일 쓰기를 위한 FileOutputStream을 생성합니다.
        try (PrintStream ps = new PrintStream(new FileOutputStream("output.txt"))) {
            // 터미널에 색상과 스타일을 설정하여 출력합니다.
            ps.println("\u001B[31mRed Text\u001B[0m");
            ps.println("\u001B[32mGreen Text\u001B[0m");
            ps.println("\u001B[33mYellow Text\u001B[0m");
        } catch (IOException e) {
            e.printStackTrace();
        }
        
        // AnsiConsole을 다시 복구합니다.
        AnsiConsole.systemUninstall();
    }
}

위의 코드는 output.txt 파일을 생성하고, 터미널에 빨간색, 초록색, 노란색 텍스트를 출력하는 예제입니다. Jansi의 AnsiConsole을 사용하여 색상을 설정하고, PrintStream을 사용하여 파일에 출력합니다.

실행 결과

위의 예제 코드를 실행하면 output.txt 파일이 생성되고, 해당 파일에 아래와 같은 내용이 저장됩니다.

Red Text
Green Text
Yellow Text

결론

Jansi를 사용하면 자바 애플리케이션에서 터미널에서 파일을 쓸 수 있습니다. 색상과 스타일을 지정하여 터미널에 출력하고 동시에 파일에도 저장할 수 있습니다. Jansi를 활용하여 터미널 애플리케이션을 더욱 다채롭고 시각적으로 향상시킬 수 있습니다.