J2SE
【Java基础专题】IO与文件读写---优化搜索程序(01)
摘要: Apache commons CLI是一个开源的,用于处理命令行的工具包。这个包目前的稳定版本是1.2,他非常简单只有20个左右的class,但提供了几乎所以可以用到的命令行功能。它的主页在这里:Apache commons CLI
根据CLI的逻辑,每一个命令行的处理都可以分为3个步骤:定义、解析、交互
①定义:定义命令行的各种选项属性(包括缩写、全写、是否必须、是否带参数、参数个数限制)
②解析:使用解析器对命令行选项列表进行解析
③交互:从解析好的命令行查询用户输入的参数值并进行处理
阅读全文
posted @
2010-04-02 14:20 Paul Lin 阅读(1062) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---DirectoryWalker和FileFilter的复杂条件使用
摘要: 1.基本功能过滤器
=============================================
①类型:DirectoryFileFilter、FileFileFilter
②大小:EmptyFileFilter、SizeFileFilter
③时间:AgeFileFilter
④名称:NameFileFilter、PrefixFileFilter、SuffixFileFilter、RegexFileFilter、WildcardFileFilter
⑤读写属性:CanReadFileFilter、CanWriteFileFilter
⑥隐藏属性:HiddenFileFilter
2.逻辑关系过滤器
=============================================
①逻辑与:AndFileFilter
②逻辑或:OrFileFilter
③逻辑非:NotFileFilter
④永真/假:TrueFileFilter、FalseFil
阅读全文
posted @
2010-04-01 17:52 Paul Lin 阅读(3159) |
评论 (1) 编辑
【Java基础专题】IO与文件读写---使用DirectoryWalker和FileFilterUtils进行搜索
摘要: Apache commons IO包中提供了一个可以遍历目录下资源的DirectoryWalker,还有很多的IOFileFilter用于过滤文件目录。下面的例子分别演示了这个功能。
这两个搜索类都是以内部类的方式嵌入客户端的,客户端接收客户的参数,然后通过一个后台线程来进行搜索,等待子线程完成搜索后(join方法),再打印搜索结果。
注意这个过程是可以被cancel的。cancel主要有2种情况。外部cancel:外部线程通过调用内部类的cancel()方法。内部cancel:在handleDirectory、handleFile中主动抛出CancelException。
walk方法在每次执行前、后都会检查当前是否有cancel指令发出(checkIfCancelled ---> handleIsCancelled),如果有那么默认立刻抛出CancelException,然后调用handleCancelled方法。
阅读全文
posted @
2010-03-31 23:45 Paul Lin 阅读(2556) |
评论 (1) 编辑
【Java基础专题】IO与文件读写---对同步/异步和阻塞/非阻塞的理解
摘要: ①同步的操作,如果在等待的过程不能做别的事情,它是同步+阻塞的。这个也是最常见的
②同步的操作,如果在等待的过程可以做别的事情,它是同步+非阻塞的。
③异步的操作,如果在等待的过程不能做别的事情,它是异步+阻塞的。
④异步的操作,如果在等待的过程可以做别的事情,它是异步+非阻塞的。这个也是最常见的
阅读全文
posted @
2010-03-10 15:36 Paul Lin 阅读(2777) |
评论 (2) 编辑
【Java基础专题】IO与文件读写---同步/异步与阻塞/非阻塞的区别(转)
摘要: 同步/异步:消息通知机制。是自己主动关注消息还是靠别人通知
阻塞/非阻塞:消息处理机制。等待消息处理完成的过程能否做别的事情
阅读全文
posted @
2010-03-10 14:54 Paul Lin 阅读(2621) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---使用Apache commons IO包进行资源遍历
摘要: 要使用DirectoryWalker来遍历一个目录并进行相应的操作,步骤如下:
①创建一个继续于DirectoryWalker的类,并在构造方法中调用super();
②定义一个业务入口方法,例如clean。在这个方法中调用walk方法
③覆盖DirectoryWalker类的handleDirectory方法,提供相应的处理逻辑
④覆盖DirectoryWalker类的handleFile方法,提供相应的处理逻辑
阅读全文
posted @
2010-03-09 00:26 Paul Lin 阅读(3507) |
评论 (1) 编辑
【Java基础专题】IO与文件读写---使用Apache commons IO过滤文件和目录
摘要: 它们可以分为两大类:
①实质性过滤器:例如针对文件的类型,属性,名称,大小进行过滤的过滤器
②过滤器连接器:典型的包括AndFileFilter、OrFileFilter。用于逻辑连接多个过滤器
阅读全文
posted @
2010-03-09 00:02 Paul Lin 阅读(1345) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---使用Apache commons IO简化文件读写
摘要: FileUtils总体上来说,主要功能有:
※ 资源的创建、删除
※ 资源的复制、移动
※ 资源的读写
※ 资源的比较
※ 资源的过滤
※ 资源的转换
阅读全文
posted @
2010-03-08 15:07 Paul Lin 阅读(6563) |
评论 (1) 编辑
【Java基础专题】IO与文件读写---使用Apache commons io包提高读写效率
摘要: 本文通过对Apache commons io包的input,output子类的源代码研究,来揭示为什么使用commons IO包会在性能上由于JDK自带的IO类。
特别是输出流方面
阅读全文
posted @
2010-03-04 10:28 Paul Lin 阅读(5636) |
评论 (0) 编辑
【Java基础专题】IO与文件读写---Java的IO流架构
摘要: 使用图例全面展示Java中IO的架构,特别是节点流和过滤流及其之间的转换
阅读全文
posted @
2010-03-02 09:47 Paul Lin 阅读(4301) |
评论 (3) 编辑
【Java基础专题】编码与乱码(08)---JavaEE防止中文乱码的设置
摘要: 良好的编程习惯,对编码和数据传输流程的清晰认识,规范的配置是确保JavaEE应用不会出现乱码的三大法宝
阅读全文
posted @
2010-02-24 10:25 Paul Lin 阅读(4301) |
评论 (1) 编辑
Full J2SE Archive