до Java 1.6 Силно се препоръчва да напишете блок finally, за да затворите ресурси, които са отворени като част от блока try.

При опит с ресурси е, че каквито и ресурси да се отворят в частта от блока за опит, ще се затвори автоматично, след като програмата достигне до края на блока за опит нормално или необичайно. Не е необходимо ресурсите да се затварят изрично.

Пример try-catch-finally към try-with-resource

Проста програма за показване на функционалността на try-catch-finally
try-catch-finally

PrintWriter writer = null;
try{
    writer = new PrintWriter(new File("file.txt"));
    write.println("Hello Himanshu !!");
} catch(FileNotFoundException e){
} finally{
    if(writer != null){
        writer.close();
}

опитайте-с-ресурс

try (PrintWriter writer = new PrintWriter(new File(“test.txt”))) { 
 writer.println(“Hello World”);
}

Персонализиран ресурс с възможност за автоматично затваряне или затваряне

Персонализираният ресурс работи с try-with-resource само ако класът трябва да имплементира Closeable или AutoCloseable интерфейс.

Ресурс

public class MyResource implements Closeable {

    public MyResource() {
        System.out.printf("Constructor -- MyResource");
    }

    public void doSomething() {
        System.out.printf("Method do something -- MyResource");
    }

    @Override
    public void close() throws IOException {
        System.out.printf("Close -- MyResource");
    }
}

Код

try (MyResource myResource = new MyResource()) {
    myResource.doSomething();
} catch (IOException e) {

}

Забележка:- try-with-resource все още има catch и finally block, които работят като традиционен try block;

Забележка:- Множество ресурси, разделени вътре в блока за опит с “;”;
Пример:-

try (Scanner scanner = new Scanner(new File(“file1.txt”));
PrintWriter writer = new PrintWriter(new File(“file2.txt”))) {
 while (scanner.hasNext()) {
 writer.print(scanner.nextLine());
 }
}

Пример:- опитайте (R1; R2; R3);

Да се ​​свържем в Github, LinkedIn, StackOverflow и моя Уебсайт.