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用 ...
随机推荐
- django admin后台css样式丢失
尼玛 坑爹啊 怎么光秃秃的,跟人家的不一样啊 打开firebug 发现报错,找不到css 通过google找到原因,是因为admin所需的js ,css等静态文件虽然都在django的安装目录内,但是 ...
- 编程之美 set 17 拈游戏分析 (2)
题目 有 N 块石头河两个玩家 A 和 B. A 先将石头分成若干堆, 然后按照 BABABA... 的顺序轮流取石块, 能将剩下的石头依次取光的玩家获胜. 每次取石头时, 每个玩家只能取一堆的 m( ...
- 总结界面框架_UI_Adapter
本人定期更新经典案例及解决方案如有疑问请联系我QQ1822282728 -- 277627117 下面是常用到的ui Demo 安卓三级筛选菜单listview(非常经典) http://dow ...
- Spring学习笔记 7.1 Spring MVC起步
7.1.1 跟踪Spring MVC的请求请求首先到达DispatcherServlet(DispatcherServlet是Spring MVC中的前端控制器):DispatcherServlet的 ...
- SharePoint PerformancePoint开发实例
前言 由于工作的原因,有一段时间没有发新的随笔了,最近使用了SharePoint PerformancePoint做了一些报表,与大家分享经验. 本文完全原创,转载请说明出处,希望对大家有用. 阅读目 ...
- [iOS微博项目 - 4.4] - 会员标识
github: https://github.com/hellovoidworld/HVWWeibo A.会员标识 1.需求 给vip会员打上会员标识 不同等级的vip会员使用不同的标识 使用橙色作为 ...
- Unknown type name 'UIColor" 的问题
遇到如下的问题 平时都没太注意创建UIViewController的时候Xcode给你引入的类库,所以解决方法是: 在.h里 #import <UIKit/UIKit.h> 解决问题!
- 即使关闭了nagle算法,粘包依旧存在
JAVA高级架构 https://mp.weixin.qq.com/s?src=11×tamp=1542107581&ver=1242&signature=OoktA ...
- python(五)常用模块学习
版权声明:本文为原创文章,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明. https://blog.csdn.net/fgf00/article/details/52357 ...
- LeetCode_Add Two Numbers
题目: You are given two linked lists representing two non-negative numbers. The digits are stored in r ...