[java] 롬복을 사용하여 자바 파일 압축을 어떻게 처리하고 사용할 수 있나요?
롬복은 자바 개발을 간편하게 해주는 라이브러리로, 코드의 반복 작업을 줄여주고 보일러플레이트 코드를 줄여주는 등의 다양한 기능을 제공합니다. 롬복을 사용하여 자바 파일을 압축하고 사용하는 방법에 대해서 알아보겠습니다.
- 롬복 라이브러리 추가하기: 먼저, 프로젝트에 롬복 라이브러리를 추가해야 합니다. 롬복은 Maven이나 Gradle과 같은 의존성 관리 도구를 사용하여 프로젝트에 추가할 수 있습니다. Maven을 사용한다면 pom.xml 파일에 아래의 의존성을 추가합니다.
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.20</version>
<scope>provided</scope>
</dependency>
Gradle을 사용한다면 build.gradle 파일에 아래의 의존성을 추가합니다.
dependencies {
compileOnly 'org.projectlombok:lombok:1.18.20'
}
- @Getter와 @Setter 애너테이션 사용하기: 롬복은 @Getter와 @Setter 애너테이션을 사용하여 자동으로 Getter와 Setter 메서드를 생성해줍니다. 이를 사용하여 파일의 압축과 해제를 처리할 수 있습니다. 예를 들어, 아래와 같은 클래스가 있다고 가정해봅시다.
import lombok.Getter;
import lombok.Setter;
@Getter
@Setter
public class File {
private String name;
private String path;
}
위의 코드에서 @Getter와 @Setter 애너테이션은 롬복에 의해 자동으로 Getter와 Setter 메서드를 생성해줍니다.
- 압축 및 해제 처리하기: 압축 처리를 위해서는 java.util.zip 패키지의 ZipOutputStream 클래스를 사용합니다. 아래는 파일을 압축하는 예제입니다.
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class FileCompressor {
public void compress(File file, String zipFilePath) throws IOException {
try (ZipOutputStream zipOutputStream = new ZipOutputStream(new FileOutputStream(zipFilePath))) {
ZipEntry entry = new ZipEntry(file.getName());
zipOutputStream.putNextEntry(entry);
// 파일을 압축하는 로직 추가
zipOutputStream.closeEntry();
}
}
}
위의 코드에서 ZipOutputStream 객체를 생성하여 파일을 압축하고, ZipEntry 객체를 사용하여 압축 파일에 파일을 추가합니다.
해제 처리를 위해서는 java.util.zip 패키지의 ZipInputStream 클래스를 사용합니다. 아래는 압축 파일을 해제하는 예제입니다.
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
import java.io.FileInputStream;
import java.io.IOException;
public class FileExtractor {
public void extract(String zipFilePath, String destFolderPath) throws IOException {
try (ZipInputStream zipInputStream = new ZipInputStream(new FileInputStream(zipFilePath))) {
ZipEntry entry = zipInputStream.getNextEntry();
while (entry != null) {
if (!entry.isDirectory()) {
byte[] buffer = new byte[1024];
int bytesRead;
// 압축 해제 로직 추가
}
zipInputStream.closeEntry();
entry = zipInputStream.getNextEntry();
}
}
}
}
위의 코드에서 ZipInputStream 객체를 생성하여 압축 파일을 해제하고, ZipEntry 객체를 사용하여 압축 해제할 파일을 읽습니다.
이처럼 롬복을 사용하여 자바 파일 압축 처리와 해제 처리를 간편하게 구현할 수 있습니다. 롬복의 다양한 기능을 활용하여 개발 생산성을 높일 수 있습니다.