[kotlin] 파일 압축해서 저장하는 방법
- Zip 파일 생성
압축하려는 파일을 포함하는 새로운 Zip 파일을 생성해야 합니다. Kotlin에서는
java.util.zip
패키지를 사용하여 Zip 파일을 생성할 수 있습니다.
import java.io.FileOutputStream
import java.util.zip.ZipEntry
import java.util.zip.ZipOutputStream
fun compressFiles(files: List<File>, zipName: String) {
val zipOutputStream = ZipOutputStream(FileOutputStream(zipName))
for (file in files) {
val entry = ZipEntry(file.name)
zipOutputStream.putNextEntry(entry)
val inputStream = FileInputStream(file)
val buffer = ByteArray(1024)
var length: Int
while (inputStream.read(buffer).also { length = it } > 0) {
zipOutputStream.write(buffer, 0, length)
}
inputStream.close()
zipOutputStream.closeEntry()
}
zipOutputStream.close()
}
위의 코드는 compressFiles
함수를 정의하고, 압축하려는 파일들과 생성할 Zip 파일의 이름을 매개변수로 받습니다. Zip 파일을 작성하기 위해 ZipOutputStream
을 생성하고, 파일을 읽어서 Zip 파일에 쓰는 작업을 수행합니다. 마지막으로, Zip 파일을 닫아 압축 작업을 완료합니다.
- 압축하려는 파일 목록 준비
compressFiles
함수에서 사용하기 위해 압축하려는 파일들의 목록을 준비해야 합니다. 예를 들어, 다음과 같이 파일을 생성하고 리스트에 추가할 수 있습니다.
val file1 = File("file1.txt")
val file2 = File("file2.txt")
val fileList = listOf(file1, file2)
- 압축 파일 생성
압축하려는 파일 목록과 생성할 Zip 파일명을 인자로
compressFiles
함수를 호출하여 압축 파일을 생성합니다.
val zipName = "compressed.zip"
compressFiles(fileList, zipName)
이제 compressed.zip
파일에는 file1.txt
와 file2.txt
파일이 압축되어 저장되어 있습니다.
참고: Kotlin의 파일 및 압축 관련 라이브러리 외에도 Java의 java.util.zip
패키지를 사용할 수 있습니다.