package com.file;import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class lianxi { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File a=new File("c:\\wang\\test.xlsx");
try {
FileInputStream in=new FileInputStream(a);
FileOutputStream out=null;
out=new FileOutputStream(new File("c:\\wang\\test1.xlsx"));
byte zhongzhuan[]=new byte[(int)a.length()];
int len;
if((len=in.read(zhongzhuan, 0, zhongzhuan.length))!=-1)
{
out.write(zhongzhuan,0,zhongzhuan.length);
out.flush();
}
out.close();
if(out!=null) {
out.close();
}
if(in!=null) {
in.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
为什么要加这两句,麻烦大虾帮忙解决一下??
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class lianxi { /**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
File a=new File("c:\\wang\\test.xlsx");
try {
FileInputStream in=new FileInputStream(a);
FileOutputStream out=null;
out=new FileOutputStream(new File("c:\\wang\\test1.xlsx"));
byte zhongzhuan[]=new byte[(int)a.length()];
int len;
if((len=in.read(zhongzhuan, 0, zhongzhuan.length))!=-1)
{
out.write(zhongzhuan,0,zhongzhuan.length);
out.flush();
}
out.close();
if(out!=null) {
out.close();
}
if(in!=null) {
in.close();
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}}
为什么要加这两句,麻烦大虾帮忙解决一下??
所以一般把关闭写在finally里。
public static void main(String[] args) {
// TODO Auto-generated method stub
File file = new File("c:\\wang\\test.xlsx");
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream(file);
out = new FileOutputStream(new File("c:\\wang\\test1.xlsx"));
byte zhongzhuan[] = new byte[(int) file.length()];
int len;
if ((len = in.read(zhongzhuan, 0, zhongzhuan.length)) != -1) {
out.write(zhongzhuan, 0, len);
out.flush();
}
out.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
if (out != null) {
try {
out.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if (in != null) {
try {
in.close();
} catch (IOException e) {
e.printStackTrace();
} }
}
}
一般
FileInputStream in=null;
try{
...
in = new ...//如果这里之前出现异常,则in = null
...
}catch(Exception e){
...
}finally{
if(in!=null){//这里防止出现异常时in为null
in.close();
}
}
out.close();
if(out!=null) {
out.close();
}
在没异常情况下,这样会重复关闭。
if(out!=null) {
out.close();
}
就是多余的了。