![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
commons
文章平均质量分 57
asialee029
这个作者很懒,什么都没留下…
展开
-
Digester学习
[size=medium] 近来在学习tomcat的源码,其中有个解析XML的工具Digester,感觉很有意思,稍微研究了一下,今天先把写的例子弄上来,以后再讲一下Digester的原理和实现,总体感觉这个组件设计的很巧妙,重点当然是Pattern和Rule已经栈的使用了。[/size][code="java"]package org.apache.commons.tes...原创 2010-01-26 00:45:37 · 87 阅读 · 0 评论 -
一款文件上传信息即时同步刷新的代码的学习
[color=red][size=large]对下面链接提供的文件上传的代码的学习。[url]http://maozj.iteye.com/blog/695628[/url][/size][/color][b][color=olive][size=medium] 前两天看到这个文件上传的例子,大家都说不错,正好近来我在研究commons-fileupload,来分...原创 2010-07-06 18:04:49 · 111 阅读 · 0 评论 -
FileUpload之FileItem
[size=medium] FileItem类主要是封装了一个File Item或者是FormItem,它的主要的方法如下,需要说明的是对于FormItem类型的,getName会得到null,getContentType会得到null,如果是FileItem类型的,getName会得到文件的全路径,getContentType会得到文件的类型。 然后以前在使用的时候因为...原创 2010-07-05 18:17:23 · 181 阅读 · 0 评论 -
commons-io之ThresholdingOutputStream 和 DeferredFileOutputStream
[size=medium]1. ThresholdingOutputStream这个类的意图主要是可以处理设置了临界值的OutputStream做出处理,它当然是复写了三个write方法。有三个步骤: 1. 检测是否到达临界值 2. 调用底层的Stream写数据 3. 改变已写数据的游标writt...原创 2010-06-26 19:44:50 · 387 阅读 · 0 评论 -
commons-io之inputstream学习
ProxyInputStream类的学习 这个类的设计意图不是特别明确,就是继承与JDK的FilterInputStream类的,但是在它的read(byte[] bytes)这个函数也是调用delegate的read(byte[])函数,父类的是直接调用的是read(byte[] bytes, int offset, int length)函数。 这个类我们就可以理...原创 2010-08-20 19:41:33 · 477 阅读 · 0 评论 -
Digester 1.1 单元测试之RuleTestCase
[size=medium] 前面还记得有前辈说过看一个开源项目在不懂的情况下要去努力的去看它的单元测试,这样就能更好的领悟作者的思想。首先我们先看一下单元测试用的一些xml。[/size][code="xml"] [/code][size=medium]首先来看第一个单元测试:[/size][code="java"]packa...原创 2010-02-03 23:32:19 · 205 阅读 · 0 评论 -
Digester 1.1 源码阅读
[size=medium] 前一段时间我们阅读了Digester的最初始的版本1.0版,现在我们再看一下1.1版,看看变化来领悟作者的重构思路。首先我们来看一下这个版本的更新: [/size][size=medium]1. 增加了一个Rules接口,原来是放到Digester里面的用一个HashMap的来保存所有的Rule的,所有的add,removey以及...原创 2010-02-03 20:36:22 · 114 阅读 · 0 评论 -
Digester 1.0 源码阅读
[size=medium] 近来在学习tomcat的源码,里面有一部分是使用Digester来解析xml文件的过程。感觉这个工具的代码量比较小,就稍微研究了一下,我近来发现研究开源的代码要从最小版本开始研究,这样研究有下面一些好处(个人感觉): 1. 一般来说代码量比较小,阅读起来稍微简单一些; 2. 容易和作者产生共鸣; 3. 一般来说都是基于第一版...原创 2010-02-01 20:15:33 · 98 阅读 · 0 评论 -
commons-io之WildcardFileFilter的实现
上次这个是最后一个FileFilter,没想到这个实现的还比较复杂,当时头脑比较晕,也没有看懂,就想这次专门的看一下源码,在看这个Filter之前,我们必须要理解FilenameUtils里面的wildMatch函数的实现,这个是最经典的通配符的匹配,可以好好看看。 1. 首先我们应该来看一个小函数的实现splitOnTokens 这个函数实际上还...2010-08-02 11:35:17 · 486 阅读 · 0 评论 -
commons-io之filefilter学习
1. IOFileFilter接口 这个接口就是分别实现了FileFilter和FilenameFilter这个两个接口,作为最上层的接口,这个在后面的所有的filefilter里面可能都会实现这个接口 2. ConditionalFileFilter接口 这个接口从名字上可以看出来就是对一系列的FileFilter做操作,然后实际上就是实现了对IOFi...原创 2010-07-27 10:23:54 · 646 阅读 · 0 评论 -
common-io之Comparator阅读
1. 首先我们来查看AbstractFileComparator这个抽象类 首先我们来看一下IO包里面的Comparator,这个都比较好理解,首先是AbstractFileComparator这个类,他提供了两个接口,可以实现对Array和Collection的sort功能。 // 实现了对File数组的排序功能public File[] sort(File... fil...2010-07-17 00:17:52 · 181 阅读 · 0 评论 -
common-io 之ByteArrayOutputStream阅读
首先我们来分析它里面的的实例变量:buffers: 可以看成是一个buffer仓库,里面放的是已经读取的所有数据currentBufferIndex: 就是正在使用的buffer的indexcount: 用来存放buffers里面的所有的字节数currentBuffer: 就是当前的使用buffer,这个比较好理解。filledBufferSum: 这个起初的时候我特别不理解,后来我理解,主要是用...2010-07-16 18:56:21 · 391 阅读 · 0 评论 -
使用commons-net对ftp文件上传下载
[size=medium][color=darkblue] 项目中由于要使用到ftp服务,虽然之前对edtFTPj有研究,但是鉴于edtFTPj版本更新比较慢等原因,没有使用这个包,我们用的功能比较简单,先简单的介绍下。 过程一般是先建立连接,登陆,然后执行命令,最后关闭连接,相对来说比较简单,直接上代码。 需要说明的是,在写测试单元测试的时候,如果不依赖物理的...原创 2012-08-01 18:38:27 · 147 阅读 · 0 评论