Reader small image

You're reading from  Kotlin Design Patterns and Best Practices - Third Edition

Product typeBook
Published inApr 2024
PublisherPackt
ISBN-139781805127765
Edition3rd Edition
Right arrow
Author (1)
Alexey Soshin
Alexey Soshin
author image
Alexey Soshin

Alexey Soshin is a software architect with 18 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design
Read more about Alexey Soshin

Right arrow

An alternative to the try-with-resources statement

Java 7 introduced AutoCloseable and the try-with-resources statement for automatic resource management. Pre-Java 7 code required manual resource management, often leading to verbosity and potential errors. Here’s a pre-Java 7 example:

BufferedReader br = null;
try {
    br = new BufferedReader(new FileReader("./path/to/file"));
    System.out.println(br.readLine());
} finally {
    if (br != null) {
        br.close();
    }
}

Post-Java 7, this code can be simplified using try-with-resource syntax:

try (BufferedReader br = new BufferedReader(new FileReader("/some/path"))) {
    System.out.println(br.readLine());
}

Kotlin replaces try-with-resources with the use() function:

val br = BufferedReader(FileReader("./path/to/file"))
br.use {
    println(it.readLines())
}

In this example, the BufferedReader is automatically closed at the end of the use{} block, similar to Java...

lock icon
The rest of the page is locked
Previous PageNext Page
You have been reading a chapter from
Kotlin Design Patterns and Best Practices - Third Edition
Published in: Apr 2024Publisher: PacktISBN-13: 9781805127765

Author (1)

author image
Alexey Soshin

Alexey Soshin is a software architect with 18 years of experience in the industry. He started exploring Kotlin when Kotlin was still in beta, and since then has been a big enthusiast of the language. He's a conference speaker, published writer, and the author of a video course titled Pragmatic System Design
Read more about Alexey Soshin