首页 > 其他 > 详细

从一系列的图片文件夹中随机抽取图片

时间:2020-07-20 09:22:58      阅读:257      评论:0      收藏:0      [点我收藏+]

最近采集了15万张图片,每天采集的图片存储在一个新的目录下,在测试时需要从所有文件夹中随机抽取图片做测试。

package com.vfsd.core;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;

public class RandSelectPicFromFolder {
    
    public static void main(String[] args) {
        String folderPath = "H:\\PicDir\\";
        listFilesFromFolder(folderPath);
    }
    
    public static void listFilesFromFolder(String foldName) {
        File folder1 = new File(foldName);
        File[] files1 = folder1.listFiles();
        for(File indexFile:files1) {
            if(indexFile.isDirectory()) {
                System.out.println("folder:"+indexFile.getName());
                selectPicFromFolder(indexFile.getAbsolutePath());
            }
            
            //if(indexFile.isFile()) {
            //    System.out.println("file:"+indexFile.getName());
            //    //
            //}
        }
    }
    
    public static void selectPicFromFolder(String folderPath) {
        File folder1 = new File(folderPath);
        File[] files1 = folder1.listFiles();
        
        int picNum = files1.length;
        
        int selectPicIndex = (int) (Math.random()*picNum);
        
        System.out.println(selectPicIndex);
        
        File selectFile = files1[selectPicIndex];
        //System.out.println("file:"+selectFile.getName());
        
        String oriFileName = selectFile.getAbsolutePath();
        String newFileName = "H:\\select_pic\\"+selectFile.getName();
        
        System.out.println(oriFileName+"  "+newFileName);
        
        try {
            copyFile(oriFileName,newFileName);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
    
    public static void copyFile(String oriFilePath,String newFilePath) throws IOException{
        File oriFile = new File(oriFilePath);
        File newFile = new File(newFilePath);
        
        FileInputStream fis = new FileInputStream(oriFile);
        FileOutputStream fos = new FileOutputStream(newFile);
        
        byte[] bytes = new byte[1024];
        int b=0;
        while((b=fis.read(bytes))!=-1) {
            fos.write(bytes, 0, b);
        }
        
        fos.flush();
        fis.close();
        fos.close();
        
        
    }

}

技术分享图片

技术分享图片

 

从一系列的图片文件夹中随机抽取图片

原文:https://www.cnblogs.com/herd/p/13342117.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!