- 浏览: 85476 次
- 性别:
- 来自: 西安
最新评论
-
xuhang1128:
good
Spring源码解析 BeanPostProcessor的实现 -
zhudaokun:
呵呵……好帖,收藏一下
Spring源码解析1 IOC容器的初始化
目录列表器与目录过滤器的运用
package com.dirlist;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
/* args=D.*\.java */
public class DirList {
/**
* 目录列表器与目录过滤器
*/
public static void main(String[] args) {
File path=new File("src/com/dirlist");
String[] fileList = null;
if(args.length==0){
System.out.println("没有默认初始值");
//返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。
fileList=path.list();
}else{
System.out.println("有默认初始值");
//返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。
//当且仅当在此抽象路径名和它所表示的目录中的文件名或目录名上调用过滤器的 FilenameFilter.accept(java.io.File, java.lang.String)
//方法返回 true 时,该名称才满足过滤器。
fileList=path.list(new DirFilter(args[0]));
System.out.println(fileList.length);
}
//此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。
//根据指定比较器产生的顺序对指定对象数组进行排序。
//String.CASE_INSENSITIVE_ORDER是一个排序 String 对象的 Comparator,它的作用与 compareToIgnoreCase 相同。该比较器是可序列化的。
Arrays.sort(fileList,String.CASE_INSENSITIVE_ORDER);
for(String dirItem:fileList){
System.out.println(dirItem);
}
}
}
class DirFilter implements FilenameFilter{
//Pattern正则表达式的编译表示形式。
private Pattern pattern;
public DirFilter(String regex){
//指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象
//将给定的正则表达式编译到模式中。
pattern=Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
System.out.println(dir.getAbsolutePath());
//创建匹配给定输入与此模式的匹配器,并且尝试将整个区域与模式匹配。
System.out.println(pattern.matcher(name).matches());
return pattern.matcher(name).matches();
}
创建DirFilter类的目的在于将accept()方法提供给list()使用,使list()可以回调accept()方法。list()方法会为此目录下的所有文件名调用accept()方法,来判断是否符合你定义的目录过滤器。判断结果由accept()返回的布尔值表示。
FilenameFilter.accept(java.io.File, java.lang.String) 源码解析:
public String[] list(FilenameFilter filter) {
String names[] = list();//File.list()返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。
if ((names == null) || (filter == null)) {
return names;
}//如果返回的字符串数组或目录过滤器为空,则返回字符串数组
ArrayList v = new ArrayList();
for (int i = 0 ; i < names.length ; i++) {
if (filter.accept(this, names[i])) {
v.add(names[i]);//如果满足过滤条件,则插入
}
}
return (String[])(v.toArray(new String[v.size()]));//将满足过滤器的目录名或文件名转化为字符串数组并返回
}
利用匿名内部类实现:
DirList2.java
package com.dirlist;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
public class DirList2 {
/**
*利用匿名内部类
*/
//传向filte的参数必须是final的。这在匿名内部类中是必需的,只有这样匿名内部类才能使用来自类范围之外的对象
public static FilenameFilter filter(final String regex){
return new FilenameFilter(){
private Pattern pattern=Pattern.compile(regex);
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
};
}
public static void main(String[] args) {
File path=new File("src/com/dirlist");
String[] fileList=null;
if(args.length==0){
fileList=path.list();
}else{
fileList=path.list(DirList2.filter(args[0]));
}
Arrays.sort(fileList, String.CASE_INSENSITIVE_ORDER);
for(String fileItem:fileList){
System.out.println(fileItem);
}
}
}
DirList3.java
package com.dirlist;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
public class DirList3 {
/**
* @param args
*/
public static void main(final String[] args) {
File path=new File("src/com/dirlist");
String[] fileList=null;
if(args.length==0){
fileList=path.list();
}else{
fileList=path.list(new FilenameFilter(){
private Pattern pattern=Pattern.compile(args[0]);
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
});
}
Arrays.sort(fileList,String.CASE_INSENSITIVE_ORDER);
for(String fileItem:fileList){
System.out.println(fileItem);
}
}
}
希望对大家有用!!!
package com.dirlist;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
/* args=D.*\.java */
public class DirList {
/**
* 目录列表器与目录过滤器
*/
public static void main(String[] args) {
File path=new File("src/com/dirlist");
String[] fileList = null;
if(args.length==0){
System.out.println("没有默认初始值");
//返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。
fileList=path.list();
}else{
System.out.println("有默认初始值");
//返回由包含在目录中的文件和目录的名称所组成的字符串数组,这一目录是通过满足指定过滤器的抽象路径名来表示的。
//当且仅当在此抽象路径名和它所表示的目录中的文件名或目录名上调用过滤器的 FilenameFilter.accept(java.io.File, java.lang.String)
//方法返回 true 时,该名称才满足过滤器。
fileList=path.list(new DirFilter(args[0]));
System.out.println(fileList.length);
}
//此类包含用来操作数组(比如排序和搜索)的各种方法。此类还包含一个允许将数组作为列表来查看的静态工厂。
//根据指定比较器产生的顺序对指定对象数组进行排序。
//String.CASE_INSENSITIVE_ORDER是一个排序 String 对象的 Comparator,它的作用与 compareToIgnoreCase 相同。该比较器是可序列化的。
Arrays.sort(fileList,String.CASE_INSENSITIVE_ORDER);
for(String dirItem:fileList){
System.out.println(dirItem);
}
}
}
class DirFilter implements FilenameFilter{
//Pattern正则表达式的编译表示形式。
private Pattern pattern;
public DirFilter(String regex){
//指定为字符串的正则表达式必须首先被编译为此类的实例。然后,可将得到的模式用于创建 Matcher 对象
//将给定的正则表达式编译到模式中。
pattern=Pattern.compile(regex);
}
public boolean accept(File dir, String name) {
System.out.println(dir.getAbsolutePath());
//创建匹配给定输入与此模式的匹配器,并且尝试将整个区域与模式匹配。
System.out.println(pattern.matcher(name).matches());
return pattern.matcher(name).matches();
}
创建DirFilter类的目的在于将accept()方法提供给list()使用,使list()可以回调accept()方法。list()方法会为此目录下的所有文件名调用accept()方法,来判断是否符合你定义的目录过滤器。判断结果由accept()返回的布尔值表示。
FilenameFilter.accept(java.io.File, java.lang.String) 源码解析:
public String[] list(FilenameFilter filter) {
String names[] = list();//File.list()返回由此抽象路径名所表示的目录中的文件和目录的名称所组成字符串数组。
if ((names == null) || (filter == null)) {
return names;
}//如果返回的字符串数组或目录过滤器为空,则返回字符串数组
ArrayList v = new ArrayList();
for (int i = 0 ; i < names.length ; i++) {
if (filter.accept(this, names[i])) {
v.add(names[i]);//如果满足过滤条件,则插入
}
}
return (String[])(v.toArray(new String[v.size()]));//将满足过滤器的目录名或文件名转化为字符串数组并返回
}
利用匿名内部类实现:
DirList2.java
package com.dirlist;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
public class DirList2 {
/**
*利用匿名内部类
*/
//传向filte的参数必须是final的。这在匿名内部类中是必需的,只有这样匿名内部类才能使用来自类范围之外的对象
public static FilenameFilter filter(final String regex){
return new FilenameFilter(){
private Pattern pattern=Pattern.compile(regex);
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
};
}
public static void main(String[] args) {
File path=new File("src/com/dirlist");
String[] fileList=null;
if(args.length==0){
fileList=path.list();
}else{
fileList=path.list(DirList2.filter(args[0]));
}
Arrays.sort(fileList, String.CASE_INSENSITIVE_ORDER);
for(String fileItem:fileList){
System.out.println(fileItem);
}
}
}
DirList3.java
package com.dirlist;
import java.io.File;
import java.io.FilenameFilter;
import java.util.Arrays;
import java.util.regex.Pattern;
public class DirList3 {
/**
* @param args
*/
public static void main(final String[] args) {
File path=new File("src/com/dirlist");
String[] fileList=null;
if(args.length==0){
fileList=path.list();
}else{
fileList=path.list(new FilenameFilter(){
private Pattern pattern=Pattern.compile(args[0]);
public boolean accept(File dir, String name) {
return pattern.matcher(name).matches();
}
});
}
Arrays.sort(fileList,String.CASE_INSENSITIVE_ORDER);
for(String fileItem:fileList){
System.out.println(fileItem);
}
}
}
希望对大家有用!!!
发表评论
-
MapReduce
2011-03-07 11:55 18241.什么是MapReduce? MapRedu ... -
java Web
2010-10-20 19:55 62response.sendRedirect(): Web服务 ... -
JDK动态代理
2010-10-05 14:12 2370注意在使用JDK提供的动态代理要求我们的目标对象必须实现接 ... -
java的反射机制
2010-10-05 11:16 1618反射:运行时类型 如果你不知道某个对象的确切类型,RTT ... -
如何判断两个类之间的差异
2010-08-16 09:35 983代码实现 package net.mindview.util ... -
HashSet和散列码的研究
2010-08-10 19:13 1571散列表(Hash table,也叫 ... -
持有对象Arrays.asList异常解决办法
2010-08-08 17:50 1246添加一组元素 package com.day1; im ... -
java编程思想 IO13 源码 文件解压缩
2010-05-09 15:21 1564package com.io; import java.io ... -
java编程思想 IO12 源码 文件加锁
2010-05-09 12:37 1829package com.io; import java.io ... -
java编程思想 IO11 源码 内存映射访问与性能
2010-05-08 21:32 1824package com.io; import java. ... -
java编程思想 IO10 文件操作源码
2010-05-08 16:05 1197package com.dirlist; import ... -
java编程思想 IO9 文件操作源码
2010-05-06 22:00 980缓冲器的详细应用: package com.dirlist; ... -
java编程思想 IO8 文件操作源码
2010-05-06 20:24 968通道与缓冲器的探究 pa ... -
java编程思想 IO7 文件操作源码
2010-05-06 09:42 1364希望大家留言一起讨论 ... -
java编程思想 IO6 文件操作源码
2010-05-05 23:26 1623package com.dirlist; import ... -
java编程思想 IO5 文件操作源码
2010-05-05 11:24 1386package com.dirlist; import ... -
java编程思想 IO4源码
2010-05-03 17:24 801目录的检查及创建 package com.dirlist; ... -
java编程思想 IO3源码
2010-05-03 16:27 1183利用策略设计模式来进行目录的遍历和文件的过滤 package ... -
java编程思想 IO2源码
2010-05-03 15:32 1143package net.mindview.util; impo ... -
java静态内部类
2010-05-03 11:31 2028引用别人的博客 在一 ...
相关推荐
用Java编写程序来解决一些实际问题,赋予学 员面向对象思想,充分理解并运用Java面向对象思想来进行程序开发, 实现开发者从过程时编程到面向对象编程的转变,实现Java编程完整化 ,理解多线程、IO、网络编程、反射...
Java编程思想 Java 8实战 jls11 Effective Java --(编写代码过程中的一些最佳实践,注意事项。现在已经出第二版了,增加了lambada的内容) JAVA网络编程 第4版 --(BIO socket编程,现在基本不用了) 性能优化 Java性
用Java编写程序来解决一些实际问题,赋予学 员面向对象思想,充分理解并运用Java面向对象思想来进行程序开发, 实现开发者从过程时编程到面向对象编程的转变,实现Java编程完整化 ,理解多线程、IO、网络编程、反射...
本视频不仅全面的介绍了Java语言本身,最重要还交会读者去掌握编程思想,找到编程感觉,而不是死记硬背语言本身,视频中涉及到的应用问题分析,远远超了一个Java程序员在学习和应用Java过程中所有可能碰到的问题。...
5.3.2 Java抽象思想的实现122 5.4 封装124 5.4.1 对象封装的概念理解124 5.4.2 类的理解125 5.4.3 Java类模板创建125 5.4.4 Java中对象的创建和使用127 5.5 属性130 5.5.1 属性的定义130 5.5.2 变量131 5.6 方法132 ...
来自java编程思想--P397 Holder.java CovariantArrays.java Wildcards.java Java7文件是来自《Java 7 并发编程实战手册》的里面代码练习 LintCOde文件夹是在刷刷的题目,练练大脑。 看ArrayList.java源码是发现的有...
有关多线程的一些小例子,在《Java编程思想》中可以找到源代码 io io操作 socket 网络编程 jvm java虚拟机 algorithm 算法 mybatis 数据持久层框架 nginx 代理服务器 redis 分布式redis缓存 redis有几种集群模式?...
word源码java 关于Java的学习汇报 在两个星期前我开始了Java的学习,就我目前的学习进度,我所学到的内容可以分为三部分:了解Java的发展历史、学习Java中的“汉字”、学会Java的“造句”。>在两个星期前我开始了...
一个目录监视器源码,监视目录文件下的文件是否删除,修改,增加. 能够时时监控硬盘文件的变化,其中包括删除,修改,增加,同时自己写了一个监控...采用多线程技术,以及结合GUI,I/O操作,对编程思想的提升有很大帮助
java二叉树算法源码 项目对应 WebSIte: :pencil: 计算机基础 1. 计算机网络 2. 操作系统 3. 数据结构和算法 4. HTTP 5. Linux :hot_beverage: Java 1. Java 基础 2. Java 容器 3. Java 虚拟机 4. Java 并发 5. Java...
java版斗地主源码 严雨涛 联系方式 手机:18013137620 Email: 个人信息 男/1994 本科/江苏科技大学/...J2EE,具有面向对象思想,扎实的编程功底以及良好的编码习惯 理解java语言,java基础扎实,理解io、多线程、
百度地图毕业设计源码 目录 Java快速成长学习路线 @学习路线根据黑马程序员学习路线改编 Part1: Java基础&Web基础 Java基础 面向对象思想 集合框架 IO流 多线程与并发 异常处理 网络编程 数据库 MySQL Oracle JDBC ...
工资管理系统java源码 :warning: 该项目已被弃用 (有效的工作组织) (黑客,娱乐) (大重写,增量重构) (职业发展) (软件架构、模块化模式、Java) (软件架构、权衡、复杂性) (软件架构、cqrs、事件溯源)...
1. 掌握、理解容器、io流、多线程、网络编程等基本知识 2. 理解容器对对象的操作,io流读写对象,XML存储数据,网络编程使用及对象的序列化以及相互结合的使用等知识。 3. 进一步掌握接口实现类面向接口、面向对象...
函数式编程思想:简化问题的解决的步骤,让你的代码更优雅和简洁 观察者模式 被观察者发出事件,然后观察者(事件源)订阅然后进行处理 如果没有观察者,被观察者是不会发出任何事件的。另外知道事件何时结束,还有...
32_IO体系架构系统回顾与装饰模式的具体应用 33_Java NIO深入详解与体系分析 34_Buffer中各重要状态属性的含义与关系图解 35_Java NIO核心类源码解读与分析 36_文件通道用法详解 37_Buffer深入详解 38_NIO堆外内存与...
35_Java NIO核心类源码解读与分析 36_文件通道用法详解 37_Buffer深入详解 38_NIO堆外内存与零拷贝深入讲解 39_NIO中Scattering与Gathering深度解析 40_Selector源码深入分析 41_NIO网络访问模式分析 42_NIO网络编程...
1. 在MyBatis 里面创建两个源码目录,分别为 src_user,test_src, 用如下方式建立,鼠标右键点击 JavaResource. 2. 设置mybatis 配置文件:Configuration.xml, 在src_user目录下建立此文件,内容如下: 程序代码 程序...
第1讲:学习的要义 第2讲:Netty宏观理解 第3讲:Netty课程大纲深度解读 第4讲:项目环境搭建与Gradle配置 第5讲:Netty执行流程分析与重要组件介绍 第6讲:Netty回调与Channel执行流程分析 第7讲:Netty的...