用Java和bat批处理实现文件复制

平时写代码怕电脑出问题,需要备份到U盘,每次都手动打开复制好麻烦,于是就用Java写了个文件拷贝的jar包,用批处理执行。

1、编写程序

程序执行的时候需要传入两个参数,分别是源路径和目的路径。这样便于拷贝不同的文件夹。

package cn.baicai.ioStream;

import java.io.*;

public class CopyFile {
    static int nums=0;
    public static void main(String[] args) throws Exception {
        int len= args.length;
        if (len!=2){
            System.out.println("请输入原文件夹和目的文件夹,以空格分开");
        }
        else {
            System.out.println("开始复制");
            String src=args[0];
            String des=args[1];
            copyDirectory(src,des);
            System.out.println("共复制了"+nums+"个文件,复制完毕");
        }
    }

    public static void copyDirectory(String src,String des) throws Exception{
//        初始化源文件夹
        File fileSrc=new File(src);
//        初始化目标文件夹
        File fileDes=new File(des);
//        获得文件中的所有文件
        File[] files=fileSrc.listFiles();
//        如果目标文件夹不存在,则创建
        if (!fileDes.exists()){
            fileDes.mkdirs();
        }
//        遍历所有文件
        for (File file :
                files) {
//        如果是文件就复制
            if (file.isFile()) {
                copyFile(file.getAbsolutePath(),des+""+file.getName());
//        如果是文件夹就递归调用
            }else if (file.isDirectory()){
                copyDirectory(file.getAbsolutePath(),des+""+file.getName());
            }
            }
    }

    public static void copyFile(String src,String des) throws Exception{
        BufferedInputStream bis=new BufferedInputStream(new FileInputStream(src));
        BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(des));

        byte[] buffer=new byte[2048];
        int len=0;
        while ((len=bis.read(buffer))!=-1){
            bos.write(buffer,0,len);
        }
        bos.close();
        bis.close();
        System.out.println(src+"	复制完毕");
        nums+=1;
    }
}

2、生成jar包。

用Java和bat批处理实现文件复制

用Java和bat批处理实现文件复制

用Java和bat批处理实现文件复制

用Java和bat批处理实现文件复制

用Java和bat批处理实现文件复制

3、编写脚本文件

后面跟的是源、目的文件夹。

@echo off
java -jar IOStream.jar C:UsersaiDesktop新建文件夹 C:UsersaiDesktop新建
pause

另存为bat,注意Windows默认编码不是utf-8,要切换成ANSI,这个会根据不同的国家更换,中国就是GBK编码。

用Java和bat批处理实现文件复制

4、运行bat程序

大功告成了

用Java和bat批处理实现文件复制

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
皮不卡秋秋煎bingo子的头像 - 鹿快
评论 抢沙发

请登录后发表评论

    暂无评论内容