File Handling in Kotlin

File handling in Kotlin is straightforward and can be done using the standard library functions. Kotlin provides a rich set of APIs to read from and write to files, making it easy to work with files in your applications. Below are some common operations for file handling in Kotlin:


1. Reading a File

You can read the contents of a file in several ways:

a. Read Entire File as a String

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "example.txt"
    val content = File(fileName).readText()
    println(content)
}

b. Read File Line by Line

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "example.txt"
    File(fileName).forEachLine { line ->
        println(line)
    }
}

c. Read File into a List of Lines

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "example.txt"
    val lines = File(fileName).readLines()
    lines.forEach { println(it) }
}

2. Writing to a File

You can write data to a file in various ways:

a. Write a String to a File

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "output.txt"
    val content = "Hello, Kotlin!"
    File(fileName).writeText(content)
}

b. Append to a File

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "output.txt"
    val content = "Appending this line."
    File(fileName).appendText(content)
}

c. Write a List of Lines to a File

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "output.txt"
    val lines = listOf("Line 1", "Line 2", "Line 3")
    File(fileName).writeText(lines.joinToString("\n"))
}

3. Checking File Properties

You can check various properties of a file, such as whether it exists, is a directory, or is readable.

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "example.txt"
    val file = File(fileName)

    println("Exists: ${file.exists()}")
    println("Is Directory: ${file.isDirectory}")
    println("Is File: ${file.isFile}")
    println("Readable: ${file.canRead()}")
    println("Writable: ${file.canWrite()}")
    println("Size: ${file.length()} bytes")
}

4. Creating and Deleting Files

a. Create a File

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "newfile.txt"
    val file = File(fileName)
    file.createNewFile() // Creates a new file if it doesn't exist
}

b. Delete a File

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "newfile.txt"
    val file = File(fileName)
    if (file.delete()) {
        println("File deleted successfully.")
    } else {
        println("Failed to delete the file.")
    }
}

5. Working with Directories

a. Create a Directory

kotlin
Copy
import java.io.File

fun main() {
    val dirName = "newdir"
    val dir = File(dirName)
    if (dir.mkdir()) {
        println("Directory created successfully.")
    } else {
        println("Failed to create directory.")
    }
}

b. List Files in a Directory

kotlin
Copy
import java.io.File

fun main() {
    val dirName = "newdir"
    val dir = File(dirName)
    val files = dir.listFiles()
    files?.forEach { println(it.name) }
}

6. Using useLines for Efficient Reading

The useLines function reads the file line by line and automatically closes the file after processing.

kotlin
Copy
import java.io.File

fun main() {
    val fileName = "example.txt"
    val lines = File(fileName).useLines { it.toList() }
    lines.forEach { println(it) }
}

7. Handling Exceptions

Always handle exceptions when working with files to avoid runtime errors.

kotlin
Copy
import java.io.File
import java.io.FileNotFoundException

fun main() {
    val fileName = "nonexistent.txt"
    try {
        val content = File(fileName).readText()
        println(content)
    } catch (e: FileNotFoundException) {
        println("File not found: ${e.message}")
    } catch (e: Exception) {
        println("An error occurred: ${e.message}")
    }
}

Summary

Kotlin provides a simple and expressive way to handle files using its standard library. Whether you're reading, writing, or manipulating files, Kotlin's APIs make it easy to work with file I/O operations. Always remember to handle exceptions and close resources properly when working with files.

Comments

Popular posts from this blog

Kotlin Math Operations and Functions Overview

Kotlin Strings: Features and Operations Guide

Kotlin Android Program (QCR) Application Codes That Read Text in Photos