`
imaginecup
  • 浏览: 87422 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

java编程思想 IO2源码

阅读更多
package net.mindview.util;
import java.io.File;
import java.io.FilenameFilter;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.regex.Pattern;


public final class Directory {


/**
*目录实用工具
*/
//通过local()方法产生由本地目录中的文件构成的File对象数组
public static File[] local(File dir,final String regex){
//返回表示此抽象路径名所表示目录中的文件和目录的抽象路径名数组,这些路径名满足特定过滤器。
return dir.listFiles(new FilenameFilter(){
private Pattern pattern=Pattern.compile(regex);
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
});
}
public static File[] local(String path,final String regex){
return local(new File(path),regex);
}
//静态内部类
public static class TreeInfo implements Iterator<File>{
public List<File> files=new ArrayList<File>();
public List<File> dirs=new ArrayList<File>();
public Iterator<File> iterator(){
return files.iterator();
}
//按照指定 Collection 的迭代器所返回的元素顺序,将该 Collection 中的所有元素追加到此列表的尾部。
void addAll(TreeInfo other){
files.addAll(other.files);
dirs.addAll(other.dirs);
}
public String toString(){
return "dirs:"+PPrint.pformat(dirs)+"\n\nfiles:"+PPrint.pformat(files);
}
public static TreeInfo walk(String start,String regex){
return recurseDirs(new File(start),regex);
}
public static TreeInfo recurseDirs(File startDir,String regex){
TreeInfo result=new TreeInfo();
//利用递归
for(File item:startDir.listFiles()){
if(item.isDirectory()){
result.dirs.add(item);
result.addAll(recurseDirs(item,regex));
}else{
if(item.getName().matches(regex)){
result.files.add(item);
}

}
}
return result;
}
public static TreeInfo walk(File start,String regex){
return recurseDirs(start,regex);
}
public static TreeInfo walk(File start){
return recurseDirs(start,".*");
}
public static TreeInfo walk(String start){
return recurseDirs(new File(start),".*");
}
public boolean hasNext() {

return false;
}
public File next() {
return null;
}
public void remove() {

}
}
public static void main(String[] args) {
if(args.length==0){
System.out.println(TreeInfo.walk(".","D.*\\.java"));
}else{
for(String arg:args){
System.out.println(TreeInfo.walk(arg));
}
}

}



}
0
1
分享到:
评论

相关推荐

    java编程思想练习题答案

    《Java编程思想》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。这本书中的练习题是学习者提升技能的重要途径,而这个压缩包提供的就是这些练习题的解答,以源码的形式保存为.java文件。...

    Java编程思想侯捷编译第二版

    《Java编程思想》是Java开发领域的一本经典著作,由美国著名程序员Bruce Eckel撰写,侯捷翻译的中文版在中文读者中广受欢迎。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的开发者来说,都...

    Java编程思想 中文文档

    《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。中文文档的出现使得更多的中国开发者能够无障碍地理解这本权威...

    java编程思想笔记

    《Java编程思想笔记》是基于 Bruce Eckel 的经典著作 "Thinking in Java" 所做的学习总结,这本书深入浅出地介绍了Java语言的核心概念和技术。在本文中,我们将围绕Java编程的一些关键知识点进行深入探讨,包括但不...

    java 编程思想

    "Java编程思想第四版源码"则包含了书中所有示例的完整代码,读者可以直接运行和调试,加深对理论知识的理解。 总的来说,这本书不仅讲解了Java的基本语法和高级特性,还涵盖了企业级开发中常用的技术,是学习和进阶...

    Java编程思想_第4版_源代码

    《Java编程思想》是Bruce Eckel的经典之作,其第四版更是深受全球程序员喜爱。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和经验丰富的开发者来说都是极好的参考资料。书中通过大量的实例来讲解...

    JAVA API官方源码

    Java API是Java编程语言的核心库,它包含了众多用于构建应用程序的基本类和接口。在Java 1.8.0版本中,这些API源码被封装在`src.zip`压缩包内,位于JDK安装目录下。这个压缩包为开发者提供了一个深入了解Java内部...

    传智播客毕向东java视频源码

    源码是理解编程思想和实现机制的关键。通过分析和学习这些源代码,我们可以深入掌握Java编程的核心概念和最佳实践。以下是一些可能涵盖的知识点: 1. **基础语法**:源代码可能包括变量声明、数据类型、运算符、...

    疯狂java实战讲义源码

    通过阅读和分析这些源码,你可以了解如何将Java语法、设计模式以及编程思想转化为实际运行的程序。这份源码集合涵盖了许多关键知识点: 1. **基础语法**:包括变量声明、数据类型、流程控制(if-else、switch、for...

    经典java实例源码

    这个"经典java实例源码"的压缩包很可能包含了各种各样的Java编程示例,旨在帮助初学者理解和掌握Java的核心概念和最佳实践。对于初学者来说,通过实例学习是最有效的途径之一,因为它能让理论知识变得更加生动和易于...

    Java电子相册源码.rar

    【Java电子相册源码】是一个使用Java编程语言开发的项目,主要目的是实现一个功能丰富的电子相册应用。这个源码提供了对图片展示、管理、编辑等基本功能的支持,是学习和理解Java图形用户界面(GUI)编程以及文件...

    Thinking in java 第三版和第四版

    书中附带的源码是理解理论知识的关键,通过阅读和运行这些源代码,读者可以直观地看到Java编程的实际效果,从而加深对编程概念的理解。源码包含各种设计模式的实现,这对于提高软件设计能力非常有帮助。 "Thinking ...

    孙卫琴《Java面向对象编程》配套PPT及书中源码

    《Java面向对象编程》是孙卫琴先生撰写的一本深入探讨Java编程的著作,尤其注重面向对象的思想和实践。这本书的配套PPT和源码,为读者提供了丰富的学习资源,帮助理解和掌握Java语言的核心概念。 PPT部分,通常包含...

    140个Java源码实例

    "140个Java源码实例"是一份珍贵的学习资源,它包含了多个实际编程场景下的代码示例,旨在帮助初学者更好地理解和掌握Java编程。 在学习这140个Java源码实例时,我们可以按照以下主要知识点进行分类和深入学习: 1....

    框架源码 API JAVA

    在Java中,API包含了丰富的类库,如集合框架、IO流、网络编程、多线程等,这些都是构建应用程序的基础。 深入学习框架源码,我们需要了解以下几个关键知识点: 1. **设计模式**:大部分框架都采用了多种设计模式,...

    java程序设计教程源码

    Java程序设计教程源码是学习Java编程的重要参考资料,它包含了实际教学或自学过程中所讲解的各种示例代码,有助于深入理解Java语言的语法、结构和编程思想。这些源码通常覆盖了从基础到高级的各个主题,包括数据类型...

    JAVA达内上课源码

    源码是编程学习的重要组成部分,通过分析和研究源代码,学员可以深入理解编程思想、设计模式以及Java语言的特性和规范。 【描述】"JAVA达内上课源码JAVA达内上课源码JAVA达内上课源码" 重复的信息强调了这是关于...

    28个java常用的工具类源码

    了解并深入学习这些工具类的源码,对于提升编程技能、理解Java内部机制以及优化代码性能有着巨大的帮助。 首先,让我们逐一探讨这些工具类可能包括的内容: 1. **ArrayList和LinkedList**:这两个是Java集合框架中...

    JAVA程序设计教程附源码

    【JAVA程序设计教程】是为初学者和有一定基础的学习者提供的深入理解Java编程语言的资源。这个教程可能包含了从基础语法到高级特性的全面讲解,旨在帮助读者掌握编写高效、可维护的Java程序的技能。 在Java编程中,...

Global site tag (gtag.js) - Google Analytics