zoukankan      html  css  js  c++  java
  • 从一系列的图片文件夹中随机抽取图片

    最近采集了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
  • 相关阅读:
    使用SignalR实现即时通讯功能
    SignalR入门篇
    Mongodb关闭开源许可感想
    RaspberryPi学习教程系列4(串口通信篇)
    RaspberryPi学习教程系列3(编程实验篇-双色LED实验)
    RaspberryPi学习教程系列1(系统安装篇)
    RaspberryPi学习教程系列2(编程前准备篇)
    关于Entity Framework,园里有非常多误人子弟的`
    Java多线程1:使用多线程的几种方式以及对比
    Django编写RESTful API(六):ViewSets和Routers
  • 原文地址:https://www.cnblogs.com/herd/p/13342117.html
Copyright © 2011-2022 走看看