Java中实现对IO操作文件的复制拷贝
package cn.look.file;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
public class CopyFile {
public static void main(String[] args) throws Exception{
// TODO 自动生成的方法存根
long start=System.currentTimeMillis(); //记录起始时间
//此处的args在创建该类的时候已经运行一次,然后在点开Coverage配置,找到自变量,在里面设置
//你要输入你的文件路径以及你要复制文件的存储路径
if(args.length!=2) { //初始化参数不是两位
System.out.println("命令执行错误:");
System.exit(1);
}
//如果输入的参数正确,那么就应该进行文件的验证
File firstfile=new File(args[0]); //第一个文件的路径
if(!firstfile.exists()) {
System.out.println("源文件不存在,请确认文件的路径是否正确");
System.exit(1);
}
//当源文件的路径正确时,那么下面进行文件的拷贝
File copyfile=new File(args[1]); //拷贝文件的路径
if(!copyfile.getParentFile().exists()) { //先判断要拷贝的文件的父路径是否存在
copyfile.getParentFile().mkdirs();
}
InputStream input=new FileInputStream(firstfile);
OutputStream output=new FileOutputStream(copyfile);
//第一种读取文件的方式,这种方式读取速度相对较慢,不建议使用
/*int temp=0; //用于保存每次读取的内容
while((temp=input.read())!=-1) {
output.write(temp); //输出单个字节
}*/
//第二种文件读取的方式,这种方式在以后开发中运用较多,建议使用
byte[] a=new byte[1024]; //建议值设为1024或者2048,太大会浪费空间
int temp=0;
while((temp=input.read(a))!=-1) {
output.write(a, 0, temp);
}
input.close();
output.close();
long end=System.currentTimeMillis();
System.out.println("文件拷贝的时间为:"+(end-start));
}
}