0Pricing
Java Academy · Урок

try-with-resources (AutoCloseable)

Используйте try-with-resources и AutoCloseable для безопасного управления ресурсами.

«try-with-resources (AutoCloseable)» — бесплатный урок Java Academy на CoddyKit. Это урок 2 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Java Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Java Academy содержит 3 уроков всего.

Введение

Такие ресурсы, как файлы и сокеты, необходимо закрывать. Автоматическое управление ресурсами закрывает их автоматически, если они реализуют AutoCloseable.

Концепция AutoCloseable

Можно использовать любой класс, реализующий AutoCloseable. К распространённым вариантам относятся FileReader, BufferedReader и соединения JDBC.

Код: автоматическое закрытие FileReader

Этот FileReader автоматически закрывается после завершения блока автоматического управления ресурсами, даже если происходит исключение.

public class Main {
  public static void main(String[] args) {
    try (java.io.FileReader fr = new java.io.FileReader("test.txt")) {
      int ch = fr.read();
      System.out.println("First char code=" + ch);
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Несколько ресурсов

В одном блоке автоматического управления ресурсами можно открыть несколько ресурсов. Они автоматически закроются в обратном порядке.

Код: два ресурса

И BufferedReader, и PrintWriter автоматически закрываются в порядке, обратном порядку их создания.

public class Main {
  public static void main(String[] args) {
    try (java.io.BufferedReader br = new java.io.BufferedReader(new java.io.FileReader("test.txt"));
         java.io.PrintWriter pw = new java.io.PrintWriter("out.txt")) {
      String line = br.readLine();
      pw.println(line);
    } catch (java.io.IOException e) {
      System.out.println("Error: " + e.getMessage());
    }
  }
}

Код: собственный AutoCloseable

Вы можете самостоятельно реализовать AutoCloseable. Метод close() будет вызван автоматически.

public class Main {
  static class MyRes implements AutoCloseable {
    public void use() { System.out.println("Using resource"); }
    public void close() { System.out.println("Closed resource"); }
  }
  public static void main(String[] args) {
    try (MyRes r = new MyRes()) {
      r.use();
    }
  }
}

Проверка автоматического управления ресурсами

Быстрая проверка: каково главное преимущество автоматического управления ресурсами?

Повторение

Повторение: автоматическое управление ресурсами работает с AutoCloseable. Оно обеспечивает безопасную очистку файлов, потоков и пользовательских ресурсов.

Часто задаваемые вопросы

Урок «try-with-resources (AutoCloseable)» бесплатный?

Да — полный текст урока «try-with-resources (AutoCloseable)» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Java Academy, подпишись на CoddyKit PRO. Курс Java Academy содержит 3 уроков всего.

Чему я научусь в уроке «try-with-resources (AutoCloseable)»?

Используйте try-with-resources и AutoCloseable для безопасного управления ресурсами. Ты практикуешь Java Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Java Academy?

Предыдущий опыт не требуется. Java Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 3.

Сколько времени занимает урок «try-with-resources (AutoCloseable)»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Java Academy?

Да. Каждый урок Java Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Выброс и создание собственных исключений
  2. try-with-resources (AutoCloseable)
  3. Защитное программирование
← Назад к Java Academy