如何用java程序拷贝出一个文件夹下的所有图片

原文源自:https://blog.csdn.net/u012661010/article/details/54588503

注:本程序中没有考虑异常的处理. 
写程序最好的方法就是先分析功能,然后把功能细化,把思路写下来,跟着思路去写,在写的时候突然把想到的也写进去,不断完善方法中的内容. 
思路分析:主方法: 
1.写一个静态的正则放到主方法外面. 
2.创建一个文件夹的对象. 
3.调用下面的方法. 
定义一个功能方法: 
1.将路径封装成File数组 
2.遍历这个数组,找出文件夹(接着调用这个方法),然后与图片的正则匹配. 
3.创建输入输出的管道. 
4.关流.

static String regex = ".+\\.[j][a][v][a]";//正则表达式 用来判读是否是图片格式的文件

    public static void main(String[] args) throws IOException {
        File file = new File("G:\\test");//需要查找的文件夹
        copyPhoto(file);
        System.out.println("传输完成!");
    }
    private static void copyPhoto(File file) throws IOException {  //复制图片的方法
        File[] files = file.listFiles(); //将路径封装成File数组
        for (File file2 : files) {//遍历这个数组
            if (file2.isDirectory()) { //判断是否是文件夹
                copyPhoto(file2);  //是的话就继续调用这个方法
            } else if (file2.getName().matches(regex)) { //不是的话就匹配是否是图片
                BufferedInputStream bis=new BufferedInputStream(new FileInputStream(file2)) ;//创建输入的管道          
                byte[] buf = new byte[1024*20];//创建一个小数组
                int lenght = 0;
                BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(  //创建输出管道
                        "G:\\javaIO\\我的java文件\\" + file2.getName())); //图片会拷贝到这里
                while ((lenght=bis.read(buf)) != -1) {
                    bos.write(buf, 0, lenght);
                }
                bos.close();
                bis.close();
            }
        }
    }

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值