How do I create a zip file in memory only, using files from a relative directory?
m
How do I create a zip file in memory only, using files from a relative directory?
g
@martmists Proof of concept
Copy code
import java.util.zip.ZipEntry
import java.util.zip.ZipOutputStream
import java.io.ByteArrayOutputStream
import java.io.File

fun main(args: Array<String>) {
    val output = ByteArrayOutputStream()
    try {
        ZipOutputStream(output).use { zos ->
            val entries = listOf("test.txt")

            entries.forEach {
                zos.putNextEntry(ZipEntry(it))
                zos.write("Test file data".toByteArray())
                zos.closeEntry()
            }
        }
    } catch (e: IOException) {
        e.printStackTrace()
    }

    // writing bytes from memory to file
    File("result.zip").writeBytes(output.toByteArray())
}
1431 Views