Open In App

Java SE 9 : Improved try-with-resources statements

Last Updated : 06 Feb, 2019
Improve
Improve
Like Article
Like
Save
Share
Report

In java 7 or 8 if a resource is already declared outside the try-with-resources statement, we should re-refer it with local variable. That means we have to declare a new variable in try block. Let us look at the code explaining above argument :




// Java code illustrating try-with-resource
import java.io.*;
  
class Gfg
{
    public static void main(String args[]) throws IOException
    {
          
        File file = new File("/Users/abhishekverma/desktop/hello.txt/");
          
        BufferedReader br = new BufferedReader(new FileReader(file));
  
        // Original try-with-resources statement from JDK 7 or 8
        try(BufferedReader reader = br)
        {
            String st = reader.readLine();
            System.out.println(st);
        }
    }         
}


In Java 9 we are not required to create this local variable. It means, if we have a resource which is already declared outside a try-with-resources statement as final or effectively final, then we do not have to create a local variable referring to the declared resource, that declared resource can be used without any issue. Let us look at java code explaining above argument.




// Java code illustrating improvement made in java 9
// for try-with-resources statements
  
import java.io.*;
  
class Gfg
{
    public static void main(String args[]) throws IOException
    {
          
        File file = new File("/Users/abhishekverma/desktop/hello.txt/");
          
        BufferedReader br = new BufferedReader(new FileReader(file));
          
        // New and improved try-with-resources statement in JDK 9
        try(br)
        {
            String st = br.readLine();
            System.out.println(st);
        }
  
    }         
}




Like Article
Suggest improvement
Previous
Next
Share your thoughts in the comments

Similar Reads