jdk6之前的写法:
public static void main(String[] args){
BufferedInputStream bufferedInputStream=null;
BufferedOutputStream bufferedOutputStream=null;
try
{
FileInputStream fileInputStream=new FileInputStream("C:\\Users\\Administrator\\Desktop\\test\\8.txt");
bufferedInputStream=new BufferedInputStream(fileInputStream);
FileOutputStream fileOutputStream=new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test\\12.txt");
bufferedOutputStream=new BufferedOutputStream(fileOutputStream);
byte[] buf=new byte[1024];
int length;
while ((length=bufferedInputStream.read(buf))!=-1){
bufferedOutputStream.write(buf,0,length);
}
} catch (Exception e) {
e.printStackTrace();
}finally {
if (bufferedInputStream!=null){
try {
bufferedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}finally {
if (bufferedOutputStream!=null){
try {
bufferedOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
}
jdk7之后的写法:
需要关闭的资源只要实现了java.lang.AutoCloseable,就可以自动被关闭
try()里面可以定义多个资源,它们的关闭顺序是最后在try()定义的资源先关闭。
try ( FileInputStream fileInputStream=new FileInputStream("C:\\Users\\Administrator\\Desktop\\test\\8.txt");
BufferedInputStream bufferedInputStream=new BufferedInputStream(fileInputStream);
FileOutputStream fileOutputStream=new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test\\13.txt");
BufferedOutputStream bufferedOutputStream=new BufferedOutputStream(fileOutputStream);
){
byte[] buf=new byte[1024];
int length;
while ((length=bufferedInputStream.read(buf))!=-1){
bufferedOutputStream.write(buf,0,length);
}
}catch (Exception e){
e.printStackTrace();
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------自学习