import java.io.File;
import java.math.BigDecimal;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.io.OutputStream;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.io.InputStream;
public class TestDemo{
/* 设置初始化参数:java d:\my.jpg d:\mldn.jpg
初始化参数是main()函数中的参数,在这里的两个参数就是要执行的两个地址,中间用空格隔开
在控制台命令输入执行程序的时候输入的命令是:java TestDemo d:\my.jpg d:\mldn.jpg
当然也可以字eclipse中设置初始化参数
*/
public static void main(String[] args) throws Exception{
long start=System.currentTimeMillis();//取得复制开始的时间
//判断初始化参数的个数,应该为两个,源文件和输出文件
if (args.length!=2) {
System.out.println("命令执行错误!");
System.exit(1);//程序退出执行。
}
//如果输入参数正确,应该进行源文件有效性的验证
File inFile=new File(args[0]);//第一个路径为源文件
if (!inFile.exists()) {
System.out.println("源文件不存在请确认执行路径!");
System.exit(1);
}
//如果此时源文件正确,就需要定义输出文件,同时要考虑到输出文件有目录
File outFile=new File(args[1]);
if(!outFile.getParentFile().exists()){
outFile.getParentFile().mkdirs();//创建目录
}
//实现文件内容的复制,分别定义输出流与输入流对象
InputStream input=new FileInputStream(inFile);
OutputStream output=new FileOutputStream(outFile);
int temp=0;//保存每次读取数据的长度
//每次读取1024个字节,最大2048个字节,在实际开发中需要并行访问,不能太大
byte data[]=new byte[1024];
//将每次读取进来的数据保存在字节数组里面,并且返回读取的个数
while((temp=input.read(data))!=-1){//循环读取数据
output.write(data,0,temp);//输出数组
}
input.close();
output.close();
long end=System.currentTimeMillis();//取得结束操作时间
System.out.println("复制所花费的时间:"+(end-start));//计算操作完成的时间
}
}
java文件复制
最新推荐文章于 2021-02-13 14:57:56 发布