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);
}