Stefán Freyr Stefánsson
02/03/2021, 11:07 AMappendTextappendBytescopyToappendBytesFile.appendStream(inputStream: InputStream)Matteo Mirk
02/03/2021, 11:27 AMfile.appendBytes(inputStream.readBytes())Matteo Mirk
02/03/2021, 11:29 AMStefán Freyr Stefánsson
02/03/2021, 11:30 AMFile.copyToMatteo Mirk
02/03/2021, 11:43 AMMatteo Mirk
02/03/2021, 12:02 PMinputStream.buffered().use { 
    val buffer = ByteArray(4096) // choose size
    while (it.read(buffer) != -1 ) {
        file.appendBytes(buffer)
    }
}Vampire
02/03/2021, 12:42 PMFileOutputStream(
    File("first"),
    true
).use { out ->
    File("second")
        .inputStream()
        .use {
            it.copyTo(out)
        }
}Vampire
02/03/2021, 12:46 PMfun File.appendStream(appendee: File) {
    FileOutputStream(this, true).use { out ->
        appendee
            .inputStream()
            .use {
                it.copyTo(out)
            }
    }
}Stefán Freyr Stefánsson
02/03/2021, 2:05 PMStefán Freyr Stefánsson
02/03/2021, 2:15 PM@Test
    fun appendToFile() {
        val file1 = File("foo")
        val file2 = File("bar")
        val output = File("foobar")
        output.createNewFile()
        println("file1[${file1.absolutePath} - ${file1.length()}], file2[${file2.absolutePath} - ${file2.length()}]")
        output.appendStream(file1)
        output.appendStream(file2)
        output.outputStream().close()
        println("output: ${output.absolutePath} - ${output.length()}")
    }
    fun File.appendStream(appendee: File) {
        FileOutputStream(this, true).use { out ->
            appendee
                .inputStream()
                .use {
                    it.copyTo(out)
                }
        }
    }Stefán Freyr Stefánsson
02/03/2021, 2:15 PMStefán Freyr Stefánsson
02/03/2021, 2:16 PMStefán Freyr Stefánsson
02/03/2021, 2:20 PMfile1[/Users/stefan/work/gor/quarkus/file-transfer-service/foo - 10], file2[/Users/stefan/work/gor/quarkus/file-transfer-service/bar - 22]
output: /Users/stefan/work/gor/quarkus/file-transfer-service/foobar - 0Vampire
02/03/2021, 2:22 PMcloseuseVampire
02/03/2021, 2:22 PMVampire
02/03/2021, 2:26 PMVampire
02/03/2021, 2:27 PMfile1[D:\Sourcecode\other\setup-wsl\foo - 3], file2[D:\Sourcecode\other\setup-wsl\bar - 3]
output: D:\Sourcecode\other\setup-wsl\foobar - 6Stefán Freyr Stefánsson
02/03/2021, 2:28 PMStefán Freyr Stefánsson
02/03/2021, 2:28 PMVampire
02/03/2021, 2:29 PMVampire
02/03/2021, 2:29 PMfun File.appendStream(vararg appendees: File) {
     FileOutputStream(this, true).use { out ->
         appendees
             .forEach { appendee ->
                 appendee
                     .inputStream()
                     .use {
                         it.copyTo(out)
                     }
             }
     }
 }output.appendStream(file1, file2)Stefán Freyr Stefánsson
02/03/2021, 2:31 PMStefán Freyr Stefánsson
02/03/2021, 2:32 PMVampire
02/03/2021, 2:32 PMStefán Freyr Stefánsson
02/03/2021, 2:32 PMVampire
02/03/2021, 2:33 PMVampire
02/03/2021, 2:33 PMVampire
02/03/2021, 2:33 PMStefán Freyr Stefánsson
02/03/2021, 2:33 PMStefán Freyr Stefánsson
02/03/2021, 2:34 PMStefán Freyr Stefánsson
02/03/2021, 2:34 PMnanodeath
02/03/2021, 5:13 PMSequenceInputStream(is1, is2).copyTo(fos)