bugl
bugl
HomeLearnPatternsPathsSearch
HomeLearnPatternsPathsSearch

Loading lesson path

Learn/Java/Java Errors
Java•Java Errors

Java try-with-resources

Flash cards

Review the key moves

1/4
Core idea

What is the main idea behind Java try-with-resources?

Lesson checks

Practice each idea before moving on

Short Mimo-style checks built from this lesson's code, terms, and sequence.

1Quick choice

Which statement best captures the main point of this lesson?

2Fill blank

Complete the missing token from the example code.

___ java.io.FileOutputStream;
3Order

Put the learning moves in the order that makes the concept easiest to apply.

Why use try-with-resources?
Java try-with-resources
Java Close Resources

Java Close Resources

When working with files, streams, or other resources, it is important to close them after use. If you forget to close a resource, it may keep using memory or even prevent you from opening the file again until the program ends.

Note

You have not yet learned about files and streams in detail. These topics will come in the next chapters. For now, just focus on how try-with-resources works.

In older code, you had to close "resources" manually by calling their close() method:

Example

import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
  public static void main(String[] args) {
    try {
      FileOutputStream output = new FileOutputStream("filename.txt");
      output.write("Hello".getBytes());
      output.close();  // must close manually
      System.out.println("Successfully wrote to the file.");
    } catch (IOException e) {
    System.out.println("Error writing file.");
  }
}
}

Java try-with-resources

Since Java 7, you can use try-with-resources . It is a special form of try that works with resources (like files and streams ). The resource is declared inside parentheses try(...) , and Java will close it automatically when the block finishes - even if an error occurs.

Example (try-with-resources)

import java.io.FileOutputStream;
import java.io.IOException;
public class Main {
  public static void main(String[] args) {
    // resource is opened inside try() try (FileOutputStream output = new FileOutputStream("filename.txt")) { output.write("Hello".getBytes()); // no need to call close() here System.out.println("Successfully wrote to the file.");
  } catch (IOException e) {
  System.out.println("Error writing file.");
}
}
}

Why use try-with-resources?

  • Safer - resources are always closed, even if an exception occurs.
  • Cleaner - no need to write close() calls.
  • Shorter code - less boilerplate, easier to read.

Rule of thumb: Whenever you work with files, streams, or database connections, use try-with-resources to make sure they are closed properly.

Previous

Java Multiple Exceptions

Next chapter

Java File Handling

Start with Java Files