AutoCloseable是在java.lang中的(1.7才有的)
Closeable(1.5才有的)接口继承了AutoCloseable接口
public void close()
关闭此流并释放与此流关联的所有系统资源。
继承Closeable接口,使代码更简洁,更清晰
当try代码快结束时,资源(在此时流)会被自动关闭
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class t {
private static BufferedReader reader;
public static void main(String[] args) {
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("a"))));
System.out.println(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
import java.io.BufferedReader;
import java.io.Closeable;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class t implements Closeable {
private static BufferedReader reader;
public static void main(String[] args) {
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream(new File("a"))));
System.out.println(reader.readLine());
} catch (IOException e) {
e.printStackTrace();
}
}
@Override
public void close() throws IOException {
reader.close();
}
}
flushable相同用法