압축된 데이터를 다른 파일로 복사하는 방법은 자바에서 매우 간단합니다. 자바는 자체적으로 압축 관련 라이브러리를 제공하며, 이를 사용하여 데이터를 압축하고 압축을 풀 수 있습니다. 이번 포스트에서는 java.util.zip
패키지의 ZipInputStream
과 ZipOutputStream
클래스를 사용하여 압축된 데이터를 다른 파일로 복사하는 예제를 살펴보겠습니다.
1. 압축된 데이터를 읽기 위한 준비
압축된 데이터를 읽기 위해서는 ZipInputStream
클래스를 사용해야 합니다. 아래 예제에서는 ZipInputStream
을 사용하여 압축된 파일을 열고, 압축된 데이터를 읽을 수 있는 준비를 합니다.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.zip.ZipEntry;
import java.util.zip.ZipInputStream;
public class ZipFileReader {
public static void main(String[] args) {
try {
ZipInputStream zipIn = new ZipInputStream(new FileInputStream("compressed.zip"));
ZipEntry entry = zipIn.getNextEntry();
while (entry != null) {
String fileName = entry.getName();
FileOutputStream fileOut = new FileOutputStream(fileName);
byte[] buffer = new byte[1024];
int bytesRead;
while ((bytesRead = zipIn.read(buffer)) != -1) {
fileOut.write(buffer, 0, bytesRead);
}
fileOut.close();
zipIn.closeEntry();
entry = zipIn.getNextEntry();
}
zipIn.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
위 예제에서는 “compressed.zip” 파일을 ZipInputStream
으로 열고, getNextEntry()
메소드를 사용하여 압축 파일 내의 다음 엔트리(파일)를 찾습니다. 엔트리가 있을 경우, 해당 엔트리의 이름을 entry.getName()
을 통해 가져오고, FileOutputStream
을 사용하여 새 파일을 생성합니다. 그리고 read()
메소드를 이용하여 압축된 데이터를 읽고, write()
메소드를 이용하여 읽은 데이터를 새 파일에 씁니다. 마지막으로 close()
메소드를 호출하여 파일과 압축 엔트리를 닫습니다.
2. 압축된 데이터를 새 파일로 복사하기
위의 예제에서는 압축된 데이터를 읽어서 새 파일로 복사하는 기능을 구현하였습니다. 이제 이를 활용하여 압축된 데이터를 다른 파일로 복사하는 예제를 작성해보겠습니다. 아래 예제에서는 ZipFileReader
클래스의 기능을 활용하여 “compressed.zip” 파일의 압축된 데이터를 “newfile.txt”로 복사하는 예제입니다.
public class ZipFileCopier {
public static void main(String[] args) {
try {
// 압축된 데이터를 읽어와서 새 파일로 복사하는 코드
ZipFileReader zipFileReader = new ZipFileReader();
zipFileReader.copyFile("compressed.zip", "newfile.txt");
} catch (Exception e) {
e.printStackTrace();
}
}
}
위 예제에서는 ZipFileReader
클래스의 copyFile()
메소드를 호출하여 “compressed.zip” 파일의 압축된 데이터를 “newfile.txt”로 복사합니다. 이렇게하면 압축된 데이터를 다른 파일로 효과적으로 복사할 수 있습니다.
자바에서 압축된 데이터를 다른 파일로 복사하는 방법을 살펴보았습니다. ZipInputStream
과 ZipOutputStream
클래스를 사용하면 자바에서 쉽게 압축된 데이터를 처리할 수 있습니다. 이를 활용하여 데이터의 압축 및 압축 해제, 파일의 복사 등 다양한 작업을 수행할 수 있습니다.