Java---IO文件拷贝

来源:互联网 发布:筑山殿 知乎 编辑:程序博客网 时间:2024/05/16 16:17

通过InputStream和OutputStream实现文件的拷贝。

import java.io.File;import java.io.FileInputStream;import java.io.FileOutputStream;import java.io.IOException;import java.io.InputStream;import java.io.OutputStream;class CopyFile{    @SuppressWarnings("resource")    public static void copy(String file,String copy) throws IOException{        //取得当前时间,计算文件拷贝所需时间        long start = System.currentTimeMillis();        //准备好输入输出流        InputStream input = null;        OutputStream output = null;        try{        //确定好所输入的路径是正确的且是文件路径        if(file==null&&copy==null){            System.out.println("请输入两个完整的路径");            return ;        }        File inFile = new File(file);        if(!inFile.exists()){            System.out.println("输入的源路径不存在。");            return ;        }        if(!inFile.isFile()){            System.out.println("输入的"+file+"不是文件路径,无法拷贝文件");            return;        }        File outFile = new File(copy);        if(outFile.getParentFile()!=null){            if(!outFile.getParentFile().exists()){                outFile.getParentFile().mkdirs();            }        }else{            System.out.println("输入的目标路径不存在。");            return ;        }        byte data[] = new byte[2048];        input = new FileInputStream(inFile);        output = new FileOutputStream(outFile);        int temp = 0;        while((temp = input.read(data))!=-1){            output.write(data, 0, temp);        }        long end = System.currentTimeMillis();        System.out.println("拷贝完成,花费的时间为"+(end-start));        }catch(Exception e){            throw e;        }        finally{            //关闭输入输出流            if(input!=null){            input.close();            }            if(output!=null){            output.close();            }        }    }}public class TestCopy {  //定义测试类    public static void main(String[] args) {        try {            CopyFile.copy("d:"+File.separator+"test.txt", "d:"+File.separator+"copy.txt");        } catch (IOException e) {            e.printStackTrace();        }    }}
0 0
原创粉丝点击