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

Jansi는 자바에서 ANSI 이스케이프 시퀀스를 처리하기 위한 라이브러리입니다. 이 라이브러리를 사용하면 자바 애플리케이션에서 터미널과 상호작용할 수 있는 기능을 제공합니다. 이번 블로그 포스트에서는 Jansi를 사용하여 자바 애플리케이션에서 터미널에서 파일 복사하는 방법을 알아보겠습니다.

Jansi 라이브러리 추가하기

먼저, Maven 프로젝트를 사용하는 경우 pom.xml 파일에 아래 의존성을 추가해주세요.

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

파일 복사 기능 구현하기

다음은 Jansi를 사용하여 터미널에서 파일 복사를 수행하는 간단한 예제입니다.

import org.fusesource.jansi.AnsiConsole;

import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.StandardCopyOption;

public class FileCopier {

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

        Path source = Path.of("path/to/source/file");
        Path destination = Path.of("path/to/destination/file");

        try {
            Files.copy(source, destination, StandardCopyOption.REPLACE_EXISTING);
            System.out.println("파일이 성공적으로 복사되었습니다.");
        } catch (IOException e) {
            System.err.println("파일 복사 중 오류가 발생했습니다: " + e.getMessage());
        }

        AnsiConsole.systemUninstall();
    }
}

위 예제는 java.nio.file.Files 클래스의 copy 메서드를 사용하여 파일을 복사합니다. source 변수에 복사할 파일의 경로를, destination 변수에 복사할 파일의 목적지 경로를 지정합니다.

StandardCopyOption.REPLACE_EXISTING 옵션을 사용하면 동일한 이름의 파일이 이미 존재하는 경우, 기존 파일을 덮어쓸 수 있습니다.

실행결과

위 예제를 실행하면 다음과 같은 결과가 출력됩니다.

파일이 성공적으로 복사되었습니다.

만약 복사 중에 오류가 발생하면 다음과 같은 오류 메시지가 출력됩니다.

파일 복사 중 오류가 발생했습니다: Error copying file.

결론

Jansi를 사용하여 자바 애플리케이션에서 터미널에서 파일을 복사하는 방법을 알아보았습니다. Jansi는 자바 애플리케이션에서 터미널과 상호작용하기 위한 다양한 기능을 제공하므로, 프로젝트에서 필요한 기능을 추가적으로 활용해보세요.

참고 자료