Android Create Temp File In Cache Directory (Kotlin)

April 13, 2018

Create a file in cache directory

// create file in cache directory
val outputFile = File(context.cacheDir, "output.txt")

Create a file in cache directory including date & time in filename.

val timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd-kkmmss"))
val outputFile = File(context.cacheDir, "output-${timestamp}.txt")

Create a temp file in cache directory.

val timestamp = LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyyMMdd-kkmmss"))
val outputFile = File.createTempFile(timestamp, null, context.cacheDir);

You might want to delete output file if already exist and create the necessary directory before usage.

if (outputFile.exists()) {
    outputFile.delete()
}
else {
    outputFile.parentFile?.mkdirs()
}

Write single large string output to file.

val input = "I am String"
val inputStream = ByteArrayInputStream(input.toByteArray(UTF_8))

val outputStream = FileOutputStream(outputFile)
// the following should work as well 
// val outputStream = outputFile.outputStream()

inputStream.use { input ->
    outputStream.use { output ->
        input.copyTo(output)
    }
}
This work is licensed under a
Creative Commons Attribution-NonCommercial 4.0 International License.