import java.io.File;
public class FileUtil {
// 关闭流
public static void close(AutoCloseable closeable) {
if (closeable != null) {
try {
closeable.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
实现了AutoCloseable接口的流可以调用以上方法关闭
示例
public void demo() {
OutputStreamWriter os = null;
FileOutputStream fos = null;
try {
fos = new FileOutputStream("logs/1.log",true);
os = new OutputStreamWriter(fos, "UTF-8");
os.write(date+" "+time+" "+i+"\r\n");
} catch (Exception e) {
e.printStackTrace();
} finally {
FileUtil.close(os);
FileUtil.close(fos);
}
}
以上是比较好用的老方法,然而从Java7开始可以通过try with resource方法自动关闭资源
public void test2(){
try(FileInputStream ins = new FileInputStream(new File("D:/aa.txt"));
FileOutputStream out = new FileOutputStream(new File("D://bb.txt"))){
//业务逻辑
}catch (Exception e){
e.printStackTrace();
}
}
try执行完了以后,会自动关闭资源