遍历文件夹中文件

工作中需要遍历文件夹,期初用java写,用File类中的实例方法遍历指定文件夹中文件,主要是图片,并将文件名写入指定文件,。

测试了一下,60万需要用时:224700 豪秒,即224.7秒

package ioOperation;
import java.io.*;
import java.util.*;

public class FileScan {
        
    public static List<File> getFileList(String strPath,FileWriter fw) throws IOException {  
        File dir = new File(strPath);
 
        List<File> fileList = new ArrayList<File>();
        File[] files = dir.listFiles(); // 该文件目录下文件全部放入数组  
        if (files != null) {  
            for (int i = 0; i < files.length; i++) {  
                String fileName = files[i].getName();  
                if (files[i].isDirectory()) { // 判断是文件还是文件夹  
//                    getFileList(files[i].getAbsolutePath()); // 获取文件绝对路径  
                     getFileList(files[i].getAbsolutePath(), fw);
                } else if (fileName.endsWith("jpg")) { // 判断文件名是否以.jpg结尾
                      String strFileName = files[i].getName();
                
                      String idcard = strFileName.substring((strFileName.indexOf("_")+1),strFileName.lastIndexOf("_"));
//                    String strFileName = files[i].getAbsolutePath();
//                    String fileName_detail = strFileName.substring(strFileName.lastIndexOf("\\")+1);                    
                    
                    fw.write(idcard+"\r\n");    
        
                    System.out.println("写文件成功: "+idcard);  
                    fileList.add(files[i]);  
                } else {  
                    continue;  
                    }  
                }  
        } else {
            fw.close();
        }
        return fileList;  
    }  

    public static void writeToFile(String strPath,String docPath) throws IOException {  
        
        FileWriter fw = new FileWriter(docPath);   

        long begin3 = System.currentTimeMillis();   
 
        getFileList(strPath,fw);
 
        fw.close();   

        long end3 = System.currentTimeMillis();   

        System.out.println("FileWriter执行耗时:" + (end3 - begin3) + " 豪秒");   
    }
}

今天用python中的walk类试了一下,遍历60万并写入文件,用时: 27.841446938107133秒:

python居然快一些,哈哈...

#encoding:utf-8

import os, time

path = 'D:'+os.sep+'picture'
path_result = 'D:'+os.sep + 'result.txt'

start = time.clock()

pics = os.walk(path)
fp = open(path_result, 'w')

for i in pics:
    for j in i[2]:
        fp.write(j+'\n')
fp.close()    

end = time.clock()
print ('Total time:', end - start)

主要用来做以记录...

posted @ 2016-11-03 13:11  PolarBearInterest  阅读(195)  评论(0编辑  收藏  举报