首页 > 编程语言 > 详细

java文件遍历

时间:2014-11-19 23:39:44      阅读:354      评论:0      收藏:0      [点我收藏+]

用java实现本地文件的遍历,顺便了解了下集合框架,注意java中还有Collections,是一个强大的工具,注意其与Collection的区别,在

for(File f: listFiles)  中,如果不做 if(listFiles != null) 判断,在遍历到listFiles为空时,会报NullPointerException的异常,熟悉下常见的NullPointerException异常。

 

 

 1 /*
 2  *遍历某磁盘下的所有文件 
 3  */
 4 package familiarjava;
 5 import java.io.*;
 6 import java.util.*;
 7 
 8 public class TraversFile {
 9     
10 //------------------------------方法一----------------------------------------
11     static Collection<File> listFiles(File root){
12         List<File> files = new ArrayList<File>();
13         listFiles(files, root);
14         return files;
15     }
16     
17     static void listFiles(List<File> files, File root) {
18         // TODO Auto-generated method stub
19         File[] listFiles = root.listFiles();
20         if(listFiles != null){        //若不做判断,会报空指针NullPointerException异常
21             for(File f: listFiles){
22                 if(f.isFile())
23                     files.add(f);
24                 else if(f.isDirectory())
25                     listFiles(files, f);
26             }
27         }
28         
29     }
30 
31     void printCollection(Collection<File> files){
32         if(files.isEmpty())
33             return;
34         Iterator<File> it = files.iterator();
35         while(it.hasNext())
36             System.out.println(it.next());
37     }
38     
39 //-------------------------------方法二---------------------------------------
40     public void traversefile(String dir, String filetype){
41         File f = new File(dir);
42         File[] fs = f.listFiles();
43         
44         if(fs != null){
45             for(int i=0; i<fs.length; i++){
46                 File file = fs[i];
47                 if(file.isFile()){
48                     String pathTemp = file.getAbsolutePath();
49                     if((pathTemp.indexOf(filetype))!=-1)
50                         System.out.println(file.getAbsolutePath());
51                 }else{
52                     traversefile(file.getAbsolutePath(),filetype);
53                     //System.out.println(file.getAbsolutePath());
54                 }
55             }
56         }
57     }
58     
59     public static void main(String[] args){
60         TraversFile tf = new TraversFile();
61         //tf.traversefile("f:/");
62         
63         
64         /*
65         BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
66         System.out.println("请输入盘符: ");
67         String dirSym = null;
68         try{
69             dirSym = br.readLine().toString();
70         }catch(IOException e){
71             System.out.println(e);
72         }
73         dirSym = dirSym + ":/";
74         
75         System.out.println("请输入需要显示的文件类型的后缀名: ");
76         String fileType = null;
77         try{
78             fileType = br.readLine();
79         }catch(IOException e){
80             System.out.println(e);
81         }
82         fileType = "." + fileType;
83         tf.traversefile(dirSym, fileType);
84         */
85         
86         File temp = new File("D:\\iso");
87         Collection<File> files = listFiles(temp);
88         tf.printCollection(files);
89     }
90 }

 

java文件遍历

原文:http://www.cnblogs.com/stevengerrard/p/4109287.html

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