利用策略设计模式来进行目录的遍历和文件的过滤
package net.mindview.util;
import java.io.File;
import java.io.IOException;
//策略设计模式
public class ProcessFiles {
public interface Strategy{
void process(File file);
}
private Strategy strategy;
private String ext;
public ProcessFiles(Strategy strategy,String ext){
this.strategy=strategy;
this.ext=ext;
}
public void start(String[] args){
try{
if(args.length==0){
processDirectoryTree(new File("."));
}else{
for(String arg:args){
File fileArg=new File(arg);
if(fileArg.isDirectory()){
processDirectoryTree(fileArg);
}else{
if(!arg.endsWith("."+ext)){
arg+="."+ext;
}
strategy.process(new File(arg).getCanonicalFile());
}
}
}
}catch(IOException e){
e.printStackTrace();
}
}
public void processDirectoryTree(File root) throws IOException{
System.out.println(root.getAbsolutePath());
for(File file:Directory.TreeInfo.walk(root.getAbsolutePath(), ".*\\."+ext).files)
//返回此抽象路径名的规范形式。等同于 new File(this.getCanonicalPath()())。
strategy.process(file.getCanonicalFile());
System.out.println("=====================================");
}
public static void main(String[] args) {
System.out.println("策略设计模式");
new ProcessFiles(new ProcessFiles.Strategy(){
public void process(File file) {
System.out.println(file.toString());
}
}, "class").start(args);
}
}
分享到:
相关推荐
《Java编程思想》是Bruce Eckel的经典之作,它深入浅出地介绍了Java语言的核心概念和技术。这本书中的练习题是学习者提升技能的重要途径,而这个压缩包提供的就是这些练习题的解答,以源码的形式保存为.java文件。...
《Java编程思想》是Java开发领域的一本经典著作,由美国著名程序员Bruce Eckel撰写,侯捷翻译的中文版在中文读者中广受欢迎。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的开发者来说,都...
《Java编程思想》是 Bruce Eckel 的经典著作,这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和有经验的程序员来说都是极好的学习资源。中文文档的出现使得更多的中国开发者能够无障碍地理解这本权威...
《Java编程思想笔记》是基于 Bruce Eckel 的经典著作 "Thinking in Java" 所做的学习总结,这本书深入浅出地介绍了Java语言的核心概念和技术。在本文中,我们将围绕Java编程的一些关键知识点进行深入探讨,包括但不...
"Java编程思想第四版源码"则包含了书中所有示例的完整代码,读者可以直接运行和调试,加深对理论知识的理解。 总的来说,这本书不仅讲解了Java的基本语法和高级特性,还涵盖了企业级开发中常用的技术,是学习和进阶...
《Java编程思想》是Bruce Eckel的经典之作,其第四版更是深受全球程序员喜爱。这本书深入浅出地介绍了Java语言的核心概念和技术,对于初学者和经验丰富的开发者来说都是极好的参考资料。书中通过大量的实例来讲解...
Java API是Java编程语言的核心库,它包含了众多用于构建应用程序的基本类和接口。在Java 1.8.0版本中,这些API源码被封装在`src.zip`压缩包内,位于JDK安装目录下。这个压缩包为开发者提供了一个深入了解Java内部...
书中附带的源码是理解理论知识的关键,通过阅读和运行这些源代码,读者可以直观地看到Java编程的实际效果,从而加深对编程概念的理解。源码包含各种设计模式的实现,这对于提高软件设计能力非常有帮助。 "Thinking ...
源码是理解编程思想和实现机制的关键。通过分析和学习这些源代码,我们可以深入掌握Java编程的核心概念和最佳实践。以下是一些可能涵盖的知识点: 1. **基础语法**:源代码可能包括变量声明、数据类型、运算符、...
通过阅读和分析这些源码,你可以了解如何将Java语法、设计模式以及编程思想转化为实际运行的程序。这份源码集合涵盖了许多关键知识点: 1. **基础语法**:包括变量声明、数据类型、流程控制(if-else、switch、for...
这个"经典java实例源码"的压缩包很可能包含了各种各样的Java编程示例,旨在帮助初学者理解和掌握Java的核心概念和最佳实践。对于初学者来说,通过实例学习是最有效的途径之一,因为它能让理论知识变得更加生动和易于...
【Java电子相册源码】是一个使用Java编程语言开发的项目,主要目的是实现一个功能丰富的电子相册应用。这个源码提供了对图片展示、管理、编辑等基本功能的支持,是学习和理解Java图形用户界面(GUI)编程以及文件...
《Java面向对象编程》是孙卫琴先生撰写的一本深入探讨Java编程的著作,尤其注重面向对象的思想和实践。这本书的配套PPT和源码,为读者提供了丰富的学习资源,帮助理解和掌握Java语言的核心概念。 PPT部分,通常包含...
"140个Java源码实例"是一份珍贵的学习资源,它包含了多个实际编程场景下的代码示例,旨在帮助初学者更好地理解和掌握Java编程。 在学习这140个Java源码实例时,我们可以按照以下主要知识点进行分类和深入学习: 1....
在Java中,API包含了丰富的类库,如集合框架、IO流、网络编程、多线程等,这些都是构建应用程序的基础。 深入学习框架源码,我们需要了解以下几个关键知识点: 1. **设计模式**:大部分框架都采用了多种设计模式,...
Java程序设计教程源码是学习Java编程的重要参考资料,它包含了实际教学或自学过程中所讲解的各种示例代码,有助于深入理解Java语言的语法、结构和编程思想。这些源码通常覆盖了从基础到高级的各个主题,包括数据类型...
源码是编程学习的重要组成部分,通过分析和研究源代码,学员可以深入理解编程思想、设计模式以及Java语言的特性和规范。 【描述】"JAVA达内上课源码JAVA达内上课源码JAVA达内上课源码" 重复的信息强调了这是关于...
了解并深入学习这些工具类的源码,对于提升编程技能、理解Java内部机制以及优化代码性能有着巨大的帮助。 首先,让我们逐一探讨这些工具类可能包括的内容: 1. **ArrayList和LinkedList**:这两个是Java集合框架中...
【JAVA程序设计教程】是为初学者和有一定基础的学习者提供的深入理解Java编程语言的资源。这个教程可能包含了从基础语法到高级特性的全面讲解,旨在帮助读者掌握编写高效、可维护的Java程序的技能。 在Java编程中,...