[java] Jansi를 활용하여 자바에서 터미널에서 녹음하기

이번 글에서는 Jansi 라이브러리를 활용하여 자바에서 터미널에서 녹음하는 방법을 알아보겠습니다. Jansi는 자바 애플리케이션에서 ANSI 색상 및 스타일 제어를 가능하게 해주는 라이브러리입니다.

1. Jansi 라이브러리 추가하기

먼저, 프로젝트에 Jansi 라이브러리를 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다:

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

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다:

dependencies {
    implementation 'org.fusesource.jansi:jansi:1.18'
}

의존성을 추가한 후, 프로젝트를 다시 빌드합니다.

2. 터미널에서 녹음하기

다음으로, 터미널에서 녹음하는 자바 코드를 작성해보겠습니다. 아래 코드는 터미널에서 입력된 내용을 파일로 저장하는 예제입니다.

import org.fusesource.jansi.AnsiConsole;

import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class TerminalRecorder {
    public static void main(String[] args) {
        AnsiConsole.systemInstall();

        System.out.println("녹음을 시작합니다. 종료하려면 'exit'을 입력하세요.");

        try (Scanner scanner = new Scanner(System.in);
             BufferedWriter writer = new BufferedWriter(new FileWriter("recording.txt"))) {
            while (true) {
                String line = scanner.nextLine();
                if (line.equals("exit")) {
                    break;
                }
                writer.write(line);
                writer.newLine();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

        AnsiConsole.systemUninstall();

        System.out.println("녹음이 종료되었습니다.");
    }
}

위 코드를 실행하면, 터미널에서 입력된 내용이 recording.txt 파일에 저장됩니다. ‘exit’을 입력하면 녹음이 종료됩니다.

3. 실행 결과 확인하기

다음으로, 코드를 실행하여 결과를 확인해보겠습니다. 터미널에서 다음 명령을 실행합니다:

java TerminalRecorder

이후, 터미널에서 원하는 내용을 입력하고 엔터를 누르면 입력된 내용이 recording.txt 파일에 저장됩니다. ‘exit’을 입력하면 녹음이 종료됩니다.

결론

Jansi를 활용하면 자바 애플리케이션에서 터미널에서 녹음을 쉽게 할 수 있습니다. 이를 통해 터미널 입력을 다루는 자바 애플리케이션을 개발할 때 유용하게 활용할 수 있습니다.