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
  • 相关阅读:
    ChartControl第一课简短的控件初步设计
    DevExpress中ChartControl柱状图(Bar)用法
    devexpress中用ChartControl生成柱状图
    ChartControl一个小Demo
    初识Devexpress ChartControl 之 动态添加stepline及TextAnnotation
    DEV控件之ChartControl用法
    DevExpress]ChartControl 创建Drill-Down样式的Title
    winform CheckedListBox实现全选/全不选
    winform 配置文件的加密解密
    Winform自定义窗体样式,实现标题栏可灵活自定义
  • 原文地址:https://www.cnblogs.com/herd/p/13342117.html
Copyright © 2011-2022 走看看