`
文章列表
         上次这个是最后一个FileFilter,没想到这个实现的还比较复杂,当时头脑比较晕,也没有看懂,就想这次专门的看一下源码,在看这个Filter之前,我们必须要理解FilenameUtils里面的wildMatch函数的实现,这个是最经典的通配符的匹配,可以好好看看。          1. 首先我们应该来看一个小函数的实现splitOnTokens    这个函数实际上还是比较简单的,它的主要意图就是要将字符串按*和?进行分割,这个实际上也比较简单,下面我们就来看一些它的具体实现。    首先判断如果字符串里面不包含*或者?,则直接将字符串包装成String[]进 ...
1. IOFileFilter接口     这个接口就是分别实现了FileFilter和FilenameFilter这个两个接口,作为最上层的 接口,这个在后面的所有的filefilter里面可能都会实现这个接口   2. ConditionalFileFilter接口     这个接口从名字上可以看出来就是对一系列的FileFilter做操作,然后实际上就是实现了 对IOFileFilter的增,删,查和设置操作。其实我们应该能想到得是肯定会有子类去实现这个 接口来实现一些FileFilter的组合逻辑。比如And,Or等等,我们下面就会看到。   3.Abstrac ...
  1.  首先我们来查看AbstractFileComparator这个抽象类  首先我们来看一下IO包里面的Comparator,这个都比较好理解,首先是AbstractFileComparator这个类,他提供了两个接口,可以实现对Array和Collection的sort功能。   // 实现了对File数组的排序功能 public File[] sort(File... files) { if (files != null) { Arrays.sort(files, this); } return ...
首先我们来分析它里面的的实例变量:buffers: 可以看成是一个buffer仓库,里面放的是已经读取的所有数据currentBufferIndex: 就是正在使用的buffer的indexcount: 用来存放buffers里面的所有的字节数currentBuffer
对下面链接提供的文件上传的代码的学习。 http://maozj.iteye.com/blog/695628       前两天看到这个文件上传的例子,大家都说不错,正好近来我在研究commons-fileupload,来分析一个这个代码,看看设计和实现思想。 可以肯定的是作者对fileupload是很熟悉的,这个里面的关键就是自己实现了一个FileItem,覆盖了父类里面的getOutputStream函数,所以由此就衍生了MonitoredDiskFileItem,他就是来实现这个函数的,返回一个自定义的的OutputStream,作者自定了OutputStream,感觉使用到了装饰 ...
    FileItem类主要是封装了一个File Item或者是FormItem,它的主要的 方法如下,需要说明的是对于FormItem类型的,getName会得到null, getContentType会得到null,如果是FileItem类型的,getName会得到 文件的全路径,getContentType会得到文件的类型。 然后以前在使用的时候 因为是数据是直接从InputStream里面读取的,现在看了代码实现,发现 是如果数据在内存里面,则直接返回,如果数据不在内存里面,则再读取一 下文件,然后将数据返回。     FileItem类主要是定义了接口,这些都是一些比较常见的操 ...
1. ThresholdingOutputStream 这个类的意图主要是可以处理设置了临界值的OutputStream做出处理, 它当然是复写了三个write方法。 有三个步骤:              1. 检测是否到达临界值              2. 调用底层的Stream写数据              3. 改变已写数据的游标written 里面有两个抽象的方法: protected abstract OutputStream getStream() protected abstract void thresholdReached() 意图分别是得到底层的Stream,一 ...
    近来正在分析线程模型,先写上最经典的Leader/Follower模式,代码是论坛里面一位兄弟写的,我主要是分析了一下,看一下实现,也顺便把类图贴上。
    这两天想分析一下文件上传的源码,先写一下FileUpload的最基本的使用方法。 主要是给自己做一个总结,高手就不要看了,过两天我会分析FileUpload的源码。 import java.io.IOException; import java.io.PrintWriter; import java.util.Iterator; import java.util.List; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.ser ...
1.  关于正则表达式使用的。 需求是所有匹配上的字符串加上特殊的标志,这个典型的使用是在搜索里面给所有的关键字加粗,关键是忽略大小写的,所以要替换的串是不同的,举个例子,比如: 源串:aathread sdfdf Thread sdfdf T ...
使用下面这个java程序,要使用到atlassian-extras-1.21.jar import com.atlassian.license.LicensePair; import java.io.*; import java.security.KeyFactory; import java.security.Signature; import java.security.spec.PKCS8EncodedKeySpec; public class KeyGen { public st ...
    首先来介绍一下MBean暴露的接口,主要是根据filter得到logger,设置logger的对象,动态的得到当前log4j的配置等,这个比较简单。 import org.apache.log4j.Level; public interface LoggingConfig { /** * * @param filter returns only loggers, ...
    原文地址: http://blog.sina.com.cn/s/blog_4f26c1c80100gyja.html      大家注意到没有,在Windows 7下使用Windows Live Messenger(或称MSN),关闭MSN主窗口后,它不像在XP/VISTA一那样会自动缩到托盘通知区域,而是继续在任务栏占用一格空间,没有对话窗口时只用来显示当前账户名及头像。虽然Windows 7的任务栏管理有了很大的改进,但也不能这么浪费,下面就来看看怎么让MSN老老实实地缩回到通知区域:   打开开始菜单/所有程序/Windows Live,右健点击Windows Live Mess ...
     自己实现的HashTable,主要是学习一下Hash的冲突检测以及冲突解决方式,没有详细的测试,希望大家多多指教。 import java.util.Locale; /** * Implement a hash table to store strings (i.e. objects of the Java String * class) * * @author LiYazhou * @version 1.0 */ public class HashTable { /** * The initialize size of this ha ...
    自己写的一个HTML表格排序的程序,由于是自己写的,所以比较土,况且没有使用任何JavaScript库,所以只实现了一些简单的功能。主要是了解一下原理。 function ieOrFireFox(ob) { if (ob.textContent != null) return ob.textContent; var s = ob.innerText; return s.substring(0, s.length); } function sortTableByColumn(sortTableId,iCol,dataType){ var s ...
Global site tag (gtag.js) - Google Analytics