JDK8文件IO新写法:
在try后加括号并在括号中定义资源,需要关闭的资源只要实现了java.lang.AutoCloseable,就可以自动被关闭。
try()里面可以定义多个资源,他们的关闭顺序是最后定义的最先关闭。例如下面代码块中,最后定义的BufferedOutputStream最先关闭。
package com.jun;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileOutputStream;
public class io {
public static void main(String[] args) {
String aUrl="E:\\Desktop\\myTest1\\test.txt";
String bUrl="E:\\Desktop\\myTest2\\test.txt";
IoTest(aUrl,bUrl);
}
public static void IoTest(String beforeUrl,String afterUrl){
try (
//开启资源
FileInputStream fis = new FileInputStream(beforeUrl);
BufferedInputStream bis = new BufferedInputStream(fis);
FileOutputStream fos = new FileOutputStream(afterUrl);
BufferedOutputStream bos = new BufferedOutputStream(fos);
){
int size;
byte[] buf = new byte[1024];
while((size = bis.read(buf))!=-1){
bos.write(buf,0,size);
}
}catch (Exception e){
e.printStackTrace();
}
}
}
该博客介绍了Java 8中引入的try-with-resources语句,这是一种更简洁、安全的文件IO操作方式。通过在try关键字后面的小括号中声明实现了AutoCloseable接口的资源,如FileInputStream和BufferedOutputStream等,可以在块结束时自动关闭这些资源,避免资源泄露。示例代码展示了如何使用这个新特性进行文件复制操作,其中最后一个定义的资源会先关闭。
1295

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



