iApp技术文章

Java快速复制拷贝文件方法

2018-11-24  本文已影响0人  抹茶NightSky
大家好是抹茶今天给大家带来一个java教程,快速拷贝拷贝文件方法。

·下列缓存拷贝方法
使用缓存拷贝适合拷贝一些中等大小的文件。

    /*Copy
     *缓存拷贝
     *Params path 路径
     *Params newpath 新路径
     */
    public static void Copy(String path, String newpath) throws Exception{
        InputStream in = new FileInputStream(path);
        OutputStream os = new FileOutputStream(newpath);
        byte[] b = new byte[1024];
        int len = 0;
        while((len = in.read(b))!=-1)
            os.write(b,0,len);
        os.flush();
        os.close();
        in.close();
    }

·下列缓冲拷贝方法
使用缓冲拷贝适合拷贝一些大型的文件效率高。

    /*Copys
     *缓冲拷贝
     *Params path 路径
     *Params newpath 新路径
     */
    public static void Copys(String path, String newpath) throws Exception{
        InputStream in = new FileInputStream(path);
        OutputStream os = new FileOutputStream(newpath);
        BufferedInputStream bin = new BufferedInputStream(in);
        BufferedOutputStream bos = new BufferedOutputStream(os);
        byte[] b = new byte[1024];
        int len = 0;
        while((len = bin.read(b))!=-1)
            bos.write(b,0,1024);
        bos.flush();
        bos.close();
        bin.close();
    }

Demo

//Demo
public class Copy
{
    public static void main(String[] args) throws Exception
    {
        long starttime = System.currentTimeMillis();
        Copy("C:\\lly.zip","D:\\lly.zip.bak");
        System.out.println(System.currentTimeMillis()-starttime+"ms");
        starttime = System.currentTimeMillis();
        Copys("C:\\lly.zip","D:\\lly.zip");
        System.out.println(System.currentTimeMillis()-starttime+"ms");
    }
    /*Copy
     *缓存拷贝
     *Params path 路径
     *Params newpath 新路径
     */
    public static void Copy(String path, String newpath) throws Exception{
        InputStream in = new FileInputStream(path);
        OutputStream os = new FileOutputStream(newpath);
        byte[] b = new byte[1024];
        int len = 0;
        while((len = in.read(b))!=-1)
            os.write(b,0,len);
        os.flush();
        os.close();
        in.close();
    }
    /*Copys
     *缓冲拷贝
     *Params path 路径
     *Params newpath 新路径
     */
    public static void Copys(String path, String newpath) throws Exception{
        InputStream in = new FileInputStream(path);
        OutputStream os = new FileOutputStream(newpath);
        BufferedInputStream bin = new BufferedInputStream(in);
        BufferedOutputStream bos = new BufferedOutputStream(os);
        byte[] b = new byte[1024];
        int len = 0;
        while((len = bin.read(b))!=-1)
            bos.write(b,0,1024);
        bos.flush();
        bos.close();
        bin.close();
    }
}
上一篇 下一篇

猜你喜欢

热点阅读