[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는 자바 애플리케이션에서 터미널과 상호작용하기 위한 다양한 기능을 제공하므로, 프로젝트에서 필요한 기능을 추가적으로 활용해보세요.