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 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 }
时间: 2024-12-28 21:40:24

java文件遍历的相关文章

使用 NIO.2 遍历目录下所有的Java文件

package wellGrounded; import java.io.IOException; import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFil

另类的package-info.java文件探讨(转)

原文出处:http://strong-life-126-com.iteye.com/blog/806246 翻看以前的笔记,看到一个特殊的java文件:pacakge-info.java,虽然有记录,但是不全,就尝试着追踪一下该问题, 分享一下流水账式的结果.    首先,它不能随便被创建.在Eclipse中, package-info文件不能随便被创建,会报“Type name is notvalid”错误,类名无效,Java变量定义规范是:字母.数字.下划线,还有那个不怎么常用的$符号(顺带

另类的package-info.java文件探讨

原文地址:http://strong-life-126-com.iteye.com/blog/806246 翻看以前的笔记,看到一个特殊的java文件:pacakge-info.java,虽然有记录,但是不全,就尝试着追踪一下该问题, 分享一下流水账式的结果. 首先,它不能随便被创建.在Eclipse中, package-info文件不能随便被创建,会报“Type name is notvalid”错误,类名无效,Java变量定义规范是:字母.数字.下划线,还有那个不怎么常用的$符号(顺带说下,

Java文件实时监控Commons-io

今天看到一网友写的 Java 文件监控,实时监控文件加载 ,突然想到Commons-io中已有此功能的实现,先温习下 写个简单的Demo: 有三种方式: 1.java common.io    内部实现是遍历的方式,小文件夹的效率还好,比如我测试60G的目录,就很慢很慢了.(我使用这个) 2.jdk 7 的watch service    //经测试基本不可用.在一个40g的很深的目录下去新建和删除文件5分钟都没结果.主要原因是需要对每一个Path进行注册监控. 3.jnotify       

android ndk下文件遍历与删除

在做手机开发过程中,难免要进行一些本地文件管理操作,比如很多常见app如微博.微信等都有清除缓存功能,该功能就是遍历app自己的缓存目录,然后删除全部缓存文件.使用java的File类可以实现本地文件遍历及删除等等功能,如果使用ndk的方式该如何实现呢?以前写过<基于c++使用win32 api遍历文件夹>,由于android ndk平台属于linux系统,所以该方式是无法使用的.通过查找linux下文件管理相关资料,顺利实现了文件遍历与删除功能,下面为相应代码,需要包含<dirent.

Java 文件(File)类

file类 的作用 1.用于将文件或者文件夹封装成对象 2.方便对文件与文件夹进行操作 3.方便输入输出流的文件传输 一.创建文件对象,将已有的和未出现的文件或者文件夹封装成对象. 这四种方法都将C盘下的1.Java文件封装成对象. 二.file对象的判断 可以new file 可以创建已有的文件对象,也可以创建未存在的文件对象,那怎么去判断到底存不存在呢? package com.neuedu.demo01; import java.io.File; /* * 文件类的使用 */ public

JAVA学习(八):JAVA文件编程

本博文主要介绍JAVA文件编程,主要包括通过JDK提供的I/O来从文件读取和写入数据.字节流读写文件的方法.字符流读写文件的方法.如何使用File类创建.删除和遍历文件与目录等操作. 不管是C/C++还是JAVA,都可能生成一些持久性数据,我们可以将数据存储在文件或数据库中,但是对于一些简单性的数据,如果存储在数据库中,则会显得有点得不偿失了,那么,如何在JAVA中将数据存储在文件中就成了中小型程序必须掌握的基本技能了. 下面一一讲解File类简介与文件的创建.删除.重命名,文件夹的创建.重命名

JAVA核心技术I---JAVA基础知识(文件系统及java文件基本操作)

一:文件概述 文件系统是由OS(操作系统)管理的 文件系统和Java进程是平行的,是两套系统 文件系统是由文件夹和文件递归组合而成 文件目录分隔符 –Linux/Unix 用/隔开 –Windows用\隔开,涉及到转义,在程序中需用/或\\代替 文件包括文件里面的内容和文件基本属性 文件基本属性:名称.大小.扩展名.修改时间等 二:文件类File java.io.File是文件和目录的重要类(JDK6及以前是唯一) –目录也使用File类进行表示 File类与OS无关,但会受到OS的权限限制 常

jsp声称的java文件位置

想找到JSP生成的字节码文件还是Java文件,这得看你加载Web应用是自己配置的Tomcat还是加载到Eclipse默认路径下:先说Eclipse默认路径下的吧,其路径为:你的eclipse存放工程的文件夹\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\work\Catalina\localhost\要找的JSP页面对应工程名\org\apache\jsp如果是加载的Web应用就在Tomcat下,其路径为:磁盘:\apache-tomca