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


    最近采集了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();
            
            
        }
    
    }

    QQ 3087438119
  • 相关阅读:
    AGC007题解
    博弈论学习笔记
    ZROI2019 提高十连测
    男人八题2019
    LOJ 2840「JOISC 2018 Day 4」糖
    CF671D Roads in Yusland
    网络流套路小结
    BZOJ 3729 GTY的游戏
    AGC036C GP 2
    BZOJ 5046 分糖果游戏
  • 原文地址:https://www.cnblogs.com/herd/p/13342117.html
Copyright © 2020-2023  润新知