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

for(File f: listFiles)  中,如果不做 if(listFiles != null) 判断,在遍历到listFiles为空时,会报NullPointerException的异常,熟悉下常见的NullPointerException异常。
 /*
*遍历某磁盘下的所有文件
*/
package familiarjava;
import java.io.*;
import java.util.*; public class TraversFile { //------------------------------方法一----------------------------------------
static Collection<File> listFiles(File root){
List<File> files = new ArrayList<File>();
listFiles(files, root);
return files;
} static void listFiles(List<File> files, File root) {
// TODO Auto-generated method stub
File[] listFiles = root.listFiles();
if(listFiles != null){ //若不做判断,会报空指针NullPointerException异常
for(File f: listFiles){
if(f.isFile())
files.add(f);
else if(f.isDirectory())
listFiles(files, f);
}
} } void printCollection(Collection<File> files){
if(files.isEmpty())
return;
Iterator<File> it = files.iterator();
while(it.hasNext())
System.out.println(it.next());
} //-------------------------------方法二---------------------------------------
public void traversefile(String dir, String filetype){
File f = new File(dir);
File[] fs = f.listFiles(); if(fs != null){
for(int i=0; i<fs.length; i++){
File file = fs[i];
if(file.isFile()){
String pathTemp = file.getAbsolutePath();
if((pathTemp.indexOf(filetype))!=-1)
System.out.println(file.getAbsolutePath());
}else{
traversefile(file.getAbsolutePath(),filetype);
//System.out.println(file.getAbsolutePath());
}
}
}
} public static void main(String[] args){
TraversFile tf = new TraversFile();
//tf.traversefile("f:/"); /*
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入盘符: ");
String dirSym = null;
try{
dirSym = br.readLine().toString();
}catch(IOException e){
System.out.println(e);
}
dirSym = dirSym + ":/"; System.out.println("请输入需要显示的文件类型的后缀名: ");
String fileType = null;
try{
fileType = br.readLine();
}catch(IOException e){
System.out.println(e);
}
fileType = "." + fileType;
tf.traversefile(dirSym, fileType);
*/ File temp = new File("D:\\iso");
Collection<File> files = listFiles(temp);
tf.printCollection(files);
}
}

java文件遍历的更多相关文章

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

    package wellGrounded; import java.io.IOException; import java.nio.file.FileVisitResult; import java. ...

  2. Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合

    复习IO操作,突然想写一个小工具,统计一下电脑里面的Java代码量还有注释率,最开始随手写了一个递归算法,遍历文件夹,比较简单,而且代码层次清晰,相对易于理解,代码如下:(完整代码贴在最后面,前面是功 ...

  3. 从java文件和CS文件里查询方法使用次数工具

    前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...

  4. Java文件操作源码大全

    Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...

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

    原文地址:http://strong-life-126-com.iteye.com/blog/806246 翻看以前的笔记,看到一个特殊的java文件:pacakge-info.java,虽然有记录, ...

  6. JAVA 文件编译执行与虚拟机(JVM)简单介绍

    详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...

  7. IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数

    package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...

  8. 递归实现列出当前工程下所有.Java文件

    package com.lanxi.demo2_3; import java.io.File; import java.util.ArrayList; import java.util.List; / ...

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

    一:文件概述 文件系统是由OS(操作系统)管理的 文件系统和Java进程是平行的,是两套系统 文件系统是由文件夹和文件递归组合而成 文件目录分隔符 –Linux/Unix 用/隔开 –Windows用 ...

随机推荐

  1. win7win8 64位汇编开发环境合集安装与设置

    win7win8 64位汇编开发环境合集安装与设置 下载 win7 win8  64位汇编开发环境.rar 下载地址(免积分下载) http://download.csdn.net/detail/li ...

  2. 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件

    分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...

  3. Python tushare 初步了解

    一.安装 1.Python 2.numpy 3.pandas 4.lxml 5.............. n.tushare 二.初步测试

  4. leetcode -- Unique Binary Search Trees todo

    Given n, how many structurally unique BST's (binary search trees) that store values 1...n? For examp ...

  5. 让iOS应用支持不同版本的系统与设备

    本文转载至  http://blog.csdn.net/pucker/article/details/11980811 最近一直在做app的iOS 6和7的同时适配工作,所以在此介绍一下系统与设备的兼 ...

  6. Java Web项目--使用Servlet生成一个页面

    为了生成一个servlet对应的网页.我们需要新建一个web.xml,其中将会放置servlet的相关信息.web.xml文件放置在WebContent/WEB-INF/目录下.(我们在Eclipe中 ...

  7. 模拟http请求 带 chunked解析办法一

    今天在干坏事抓取别人页面时候遇到一个问题,平时我们在post数据后,大不了要求提交cookie,但是今天这个测试了N遍不需要coookie都行的,但是抓取到的始终是乱码,怎么解析都不行.于是自己又把c ...

  8. 【BZOJ1050】[HAOI2006]旅行comf 并查集

    [BZOJ1050][HAOI2006]旅行comf Description 给你一个无向图,N(N<=500)个顶点, M(M<=5000)条边,每条边有一个权值Vi(Vi<300 ...

  9. List<Integer>.remove()的一个小细节

    不废话,先上代码: ArrayList<Integer> col = new ArrayList<Integer>(); System.out.println("In ...

  10. 使用Fastjson生成Json字符串少字段属性(数据丢失)

    最后是控制台打印生成的结果如下:FastJson生成字符串是:{"id":"2","name":"节点1"," ...