java文件遍历
用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文件遍历的更多相关文章
- 使用 NIO.2 遍历目录下所有的Java文件
package wellGrounded; import java.io.IOException; import java.nio.file.FileVisitResult; import java. ...
- Java多线程遍历文件夹,广度遍历加多线程加深度遍历结合
复习IO操作,突然想写一个小工具,统计一下电脑里面的Java代码量还有注释率,最开始随手写了一个递归算法,遍历文件夹,比较简单,而且代码层次清晰,相对易于理解,代码如下:(完整代码贴在最后面,前面是功 ...
- 从java文件和CS文件里查询方法使用次数工具
前几天,领导让我找一下老系统(Java)里getRemoteUser方法都哪个文件用了,package是什么,方法被调用了多少次,当时因为着急,所以,直接人工找的,但是以后要是再出现,人工找就太讨厌了 ...
- Java文件操作源码大全
Java文件操作源码大全 1.创建文件夹 52.创建文件 53.删除文件 54.删除文件夹 65.删除一个文件下夹所有的文件夹 76.清空文件夹 87.读取文件 88.写入文件 99.写入随机文件 9 ...
- 另类的package-info.java文件探讨
原文地址:http://strong-life-126-com.iteye.com/blog/806246 翻看以前的笔记,看到一个特殊的java文件:pacakge-info.java,虽然有记录, ...
- JAVA 文件编译执行与虚拟机(JVM)简单介绍
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcytpo3 java程序的内存分配 JAVA 文件编译执行与虚拟机(JVM)介绍 ...
- IO复制多级目录 控制台输入文件目录然后把目录下java文件复制到 D: 并统计java个数
package cn.itcast_05; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; impor ...
- 递归实现列出当前工程下所有.Java文件
package com.lanxi.demo2_3; import java.io.File; import java.util.ArrayList; import java.util.List; / ...
- JAVA核心技术I---JAVA基础知识(文件系统及java文件基本操作)
一:文件概述 文件系统是由OS(操作系统)管理的 文件系统和Java进程是平行的,是两套系统 文件系统是由文件夹和文件递归组合而成 文件目录分隔符 –Linux/Unix 用/隔开 –Windows用 ...
随机推荐
- M451例程讲解之按键
/**************************************************************************//** * @file main.c * @ve ...
- Android 通过findViewById方式创建TabHost
package org.shuxiang.tabhostsample; import android.os.Bundle; import android.app.ActivityGroup; impo ...
- Arduino开发版学习计划--蜂鸣器
文章内容参考:http://www.cnblogs.com/xiaowuyi/p/3343757.html 遇到不懂的方法,可以查看Arduino自带的API 就直接点击arduino的IDE里面菜单 ...
- XStream中几个注解的含义和用法
转自:http://blog.csdn.net/robert_mm/article/details/8459879 XStream是个很强大的工具,能将java对象和xml之间相互转化.xstream ...
- ionic 上拉加载问题(分页)
问题描述: 1.第一初始化时执行了上拉加载更多. 2.上拉时存在执行多次加载动作. angularjs的ajax不提供同步机制,是为了防止页面长时间等待,很多时候我们又需要这种同步机制交换状态,比如上 ...
- Struts2中获取Web元素request、session、application对象的四种方式
我们在学习web编程的时候,一般都是通过requet.session.application(servletcontext)进行一系列相关的操作,request.session.和applicatio ...
- win10系统安装Oracle11报错不满足最低要求
以下问题是,在安装Oracle过程中遇到的问题以及自己的解决方法: 问题一:下载好两个Oracle的安装压缩包文件,同时解压后,启动setup.exe,报错:[INS-13001]环境不满足最低要求. ...
- Writing a Discard Server 写个抛弃服务器 世上最简单的协议
Netty.docs: User guide for 4.x https://netty.io/wiki/user-guide-for-4.x.html The most simplistic pro ...
- Java8 中的时间和日期 API
1. 日期和时间概述 LocalDate,LocalTime,LocalDateTime类的实例是不可变的对象,分别表示使用 ISO-8601 日历系统 的日期,时间,日期和时间;它们提供了简单的日期 ...
- nodejs 异步编程 教程(推荐)
有异步I/O就需要异步编程.本课程将着重讲解在学习node.js中关于异步编程的一些问题,以及如何应对这些问题,帮助node.js初学者快速入门. 地址 http://www.hubwiz.com/c ...