package lzh.inputoutput.test;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
/**
* 实现拷贝功能
* @
* @author lzh
*
*/
public class TestCopy {
public static void main(String[] args) throws Exception {
// 判断参数,要求为两个,分别为源目录文件,目标文件
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);
// 方法一:实现拷贝,一个字节一个字节的拷贝, 过程不是一般的慢呀,
// long start = System.currentTimeMillis();
// int temp = 0; // 保存每次读取的个数
// while((temp = input.read()) != -1){
// output.write(temp);
// }
// long end = System.currentTimeMillis();
// System.out.println("拷贝用时:" + (end - start));
// 方法二:推荐使用的方法,用缓存复制
int temp =0; // 保存每次读取的个数
byte data[] = new byte[1024]; // 每次读取1024字节
while((temp = input.read(data)) != -1){ // 将每次读取进来的数据保存在字节数组里,并且返回读取个数
output.write(data, 0, temp); //输出数组
}
// 资源文件用完后,一定要关闭
input.close();
output.close();
}
}
输入输出流-实现复制文件
最新推荐文章于 2022-12-12 01:47:22 发布