JDK7之前的资源回收方式
/**
* jdk7以前关闭流的方式
*
* @author hetiantian
* */
public class CloseResourceBefore7 {
private static final String FileName = "file.txt";
public static void main(String[] args) throws IOException {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(FileName);
char c1 = (char) inputStream.read();
System.out.println("c1=" + c1);
} catch (IOException e) {
e.printStackTrace();
} finally {
if (inputStream != null) {
**inputStream.close();**
}
}
}
}
在JDK7之后引入try-with-resource机制,在try-with-resource代码块执行结束时会自动对资源进行回收,不需要再做close动作,如
try (Cursor cursor = res.query(ringtoneUri, new String[]{"_id"}, null, null, null)) {
return (cursor != null && cursor.getCount() == 1) ? true : false;
} catch (SecurityException se) {
Log.e(TAG, "reading content://media/external/audio/media/id ,permission requires :", se);
}
本文探讨了JDK7之前及之后的资源回收方式变化。JDK7以前,资源关闭需手动实现,如通过FileInputStream读取文件后调用close()方法。JDK7引入try-with-resource机制,自动关闭资源,简化了代码。
1619

被折叠的 条评论
为什么被折叠?



