import java.io.*;
public class override
{
public static void main(String args[])
{
if(args.length!=2)//首先判断输入的参数个数是否正确,不正确则系统退出
{
System.out.println("输入错误!");
System.exit(1);
}
File f1 = new File(args[0]);//根据给的路径创建文件1
File f2 = new File(args[1]);//根据给的路径创建文件2
InputStream in = null;//这两段声明不可放置在try里面 否则try外部无法调用
OutputStream out=null;//
if(!(f1.exists()))//查看源文件是否存在,如果不存在那么就退出!
{
System.out.println("文件不存在,请确认");
System.exit(1);
}
else
{
try
{
in= new FileInputStream(f1);//由于输入输出流是抽象类所以只能通过子类实例化
调用的时候构造函数抛出IOException异常
}catch(Exception e)
{
e.printStackTrace();
}
try
{
out = new FileOutputStream(f2);
}catch(Exception e)
{
e.printStackTrace();
}
int temp=0;
if(in!=null&&out!=null)//个人认为这个可以不要,在异常处理的地方加入System.exit(1)即可; {
try
{
while((temp=in.read())!=-1)//核心部分在此,调用in.read()会返回读入的一个整型,向上转型成byte即可给out.write()作为参数使用,这样使用的好处在于不会有内存空间不足的限制.
{
out.write((byte)temp);
}
System.out.println("Copy Compelete!");
}catch(Exception e)
{
e.printStackTrace();
System.out.println("Error!!!!");
}
}
}
}
}
上述案例要求,输入两个路径完成文件的拷贝功能.