首页 > 代码库 > java文件遍历
java文件遍历
用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 stub19 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文件遍历
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。