[java] Jansi를 사용하여 자바 프로그램에서 터미널에서 파일 압축하기

소개

Jansi는 자바 애플리케이션에서 콘솔 출력을 다양한 터미널에서 색상 처리 및 스타일링을 할 수 있는 라이브러리입니다. 이 라이브러리를 활용하여 자바 프로그램에서 터미널에서 파일을 압축하는 기능을 구현해보겠습니다.

Jansi 설치

아래의 Maven 의존성을 추가하여 Jansi를 설치할 수 있습니다:

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

파일 압축하는 자바 프로그램 작성하기

다음은 Jansi를 사용하여 터미널에서 파일을 압축하는 자바 프로그램의 예시 코드입니다:

import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

public class FileCompressor {

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

        File sourceFile = new File("path/to/source.file");
        File compressedFile = new File("path/to/compressed.zip");

        try (ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(compressedFile));
             FileInputStream fileInputStream = new FileInputStream(sourceFile)) {

            ZipEntry zipEntry = new ZipEntry(sourceFile.getName());
            zipOutputStream.putNextEntry(zipEntry);

            byte[] buffer = new byte[1024];
            int length;
            while ((length = fileInputStream.read(buffer)) > 0) {
                zipOutputStream.write(buffer, 0, length);
            }

            zipOutputStream.closeEntry();
            zipOutputStream.close();

            System.out.println(Ansi.ansi().fgGreen().a("File compressed successfully!").reset());
            System.out.println("Compressed file path: " + compressedFile.getAbsolutePath());
        } catch (IOException e) {
            System.out.println(Ansi.ansi().fgRed().a("Error compressing file: " + e.getMessage()).reset());
        }

        AnsiConsole.systemUninstall();
    }
}

위의 코드에서는 JansiConsole을 사용하여 콘솔 출력에 색상 스타일링을 적용하였습니다. sourceFile 변수는 압축할 원본 파일의 경로를, compressedFile 변수는 압축된 파일의 저장 경로를 나타냅니다.

실행하기

위의 자바 프로그램을 실행하려면 압축할 원본 파일의 경로와 압축된 파일의 저장 경로를 적절히 수정한 후에 실행하면 됩니다.

java FileCompressor

결론

Jansi를 사용하여 자바 프로그램에서 터미널에서 파일을 압축하는 기능을 구현하는 방법을 알아보았습니다. Jansi를 통해 터미널 출력에 스타일을 적용하여 사용자에게 좀 더 풍부한 경험을 제공할 수 있습니다. 추가로 필요한 기능을 구현하는데 활용해보세요.

참고 자료