[kotlin] 파일 압축해서 저장하는 방법
  1. 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 파일을 닫아 압축 작업을 완료합니다.

  1. 압축하려는 파일 목록 준비 compressFiles 함수에서 사용하기 위해 압축하려는 파일들의 목록을 준비해야 합니다. 예를 들어, 다음과 같이 파일을 생성하고 리스트에 추가할 수 있습니다.
val file1 = File("file1.txt")
val file2 = File("file2.txt")
val fileList = listOf(file1, file2)
  1. 압축 파일 생성 압축하려는 파일 목록과 생성할 Zip 파일명을 인자로 compressFiles 함수를 호출하여 압축 파일을 생성합니다.
val zipName = "compressed.zip"
compressFiles(fileList, zipName)

이제 compressed.zip 파일에는 file1.txtfile2.txt 파일이 압축되어 저장되어 있습니다.

참고: Kotlin의 파일 및 압축 관련 라이브러리 외에도 Java의 java.util.zip 패키지를 사용할 수 있습니다.