Java 7中try-with-resources简介说明

乔欣 Java经验 发布时间:2023-02-02 17:38:30 阅读数:6047 1
下文笔者讲述java中try-with-resources场景示例,如下所示

java7之前,释放资源代码

 
try{
		//open resources
	}catch(Exception){
		//handle exception
	}finally{
		//close resources
	}

java7中,引入全新的释放

在Java7中
   引入一种新try-with-resources方法
    有助于自动关闭资源

try(open resources, one or more resources){
  //...

}

//try之后,将自动释放资源

BufferedReader

在Java 7之前,
必须手动关闭BufferedReader 。
package com.java265.io;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
 
public class TestApp {
 
    public static void main(String[] args) {
 
        BufferedReader br = null;
        String line;
 
        try {
 
            br = new BufferedReader(new FileReader("C:\\testing.txt"));
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
 
        } catch (IOException e) {
            e.printStackTrace();
        } finally {
            try {
                if (br != null) br.close();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
        }
 
    }
 
}

try-with-resources自动释放资源示例分享

 
package com.java265.io;
 
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
 
public class TestApp {
 
    public static void main(String[] args) {
 
        String line;
 
        try (BufferedReader br = new BufferedReader(
                new FileReader("d:\\testing.txt"))) {
 
            while ((line = br.readLine()) != null) {
                System.out.println(line);
            }
 
        } catch (IOException e) {
            e.printStackTrace();
        }
 
		// br will be closed automatically
    }
 
}

try-with-resources自动关闭JDBC的示例

Java 7之前

@Override
public void update(int postId, String metaValue) {

	Connection connection = null;
	PreparedStatement ps = null;
	
	try {
		connection = dataSource.getConnection();
		ps = connection.prepareStatement(SQL_UPDATE_POST_META);

		ps.setString(1, metaValue);
		ps.setInt(2, postId);
		ps.setString(3, GlobalUtils.META_KEY);

		ps.executeUpdate();

	} catch (Exception e) {
		//
	} finally {

		if (ps != null) {
			ps.close();
		}

		if (connection != null) {
			connection.close();
		}
	}

}

//Java 7 try-with-resources

@Override
public void update(int postId, String metaValue) {

	try (Connection connection = dataSource.getConnection();
		 PreparedStatement ps = connection.prepareStatement(SQL_UPDATE_POST_META)) {
		ps.setString(1, metaValue);
		ps.setInt(2, postId);
		ps.setString(3, GlobalUtils.META_KEY);

		ps.executeUpdate()

	} catch (Exception e) {
		//...
	}
	
}
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

本文链接: https://www.Java265.com/JavaJingYan/202302/16753307395632.html

最近发表

热门文章

好文推荐

Java265.com

https://www.java265.com

站长统计|粤ICP备14097017号-3

Powered By Java265.com信息维护小组

使用手机扫描二维码

关注我们看更多资讯

java爱好者