输入输出流-实现复制文件

来源:互联网 发布:米芾字体下载 mac 编辑:程序博客网 时间:2024/06/06 09:24
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();}}

0 0
原创粉丝点击