Java try-with-resources


ULASHISH

Java resurslarni yopish

Fayllar, oqimlar (streams) yoki boshqa resurslar bilan ishlaganda ulardan foydalanib bo‘lgach, ularni yopish muhim. Agar resursni yopishni unutsangiz, u xotirani band qilishda davom etishi yoki hatto dastur tugaguncha faylni qayta ochishingizga to‘sqinlik qilishi mumkin.

Eslatma: Siz hali fayllar va oqimlar (streams) haqida batafsil o‘rganmadingiz. Bu mavzular keyingi boblarda keladi. Hozircha faqat try-with-resources qanday ishlashiga e’tibor qarating.

Eski kodda "resurslar"ni ularning close() metodini chaqirib, qo‘lda yopishga to‘g‘ri kelardi:

Misol

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.");
    }
  }
}
Misolni ishga tushirish »

Java try-with-resources

Java 7 dan boshlab try-with-resources’dan foydalanishingiz mumkin. Bu resurslar (masalan, fayllar va oqimlar) bilan ishlaydigan try’ning maxsus shakli. Resurs try(...) qavslari ichida e’lon qilinadi va blok tugagach, Java uni avtomatik yopadi — hatto xato yuz bersa ham.

Misol (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.");
    }
  }
}

Misolni ishga tushirish »


Nima uchun try-with-resources’dan foydalanish kerak?

  • Xavfsizroq — istisno yuz bersa ham resurslar har doim yopiladi.
  • Tozaroq — close() chaqiruvlarini yozish shart emas.
  • Qisqaroq kod — shablon kod kamroq, o‘qish osonroq.

Amaliy qoida: Fayllar, oqimlar yoki ma’lumotlar bazasi ulanishlari bilan ishlaganingizda, ular to‘g‘ri yopilishini ta’minlash uchun try-with-resources’dan foydalaning.

Keyingi mavzu: Java tilida fayllar bilan ishlashni o‘rganing.



W3Schools Pathfinder

Yutuqlaringizni kuzating – bu bepul!