Commons Io 包 学习笔记~

来源:互联网 发布:镜片清洗液 知乎 编辑:程序博客网 时间:2024/06/13 07:34
  1. IO包学习笔记   
  2.   
  3. IO几乎都是实现序列化接口  
  4.   
  5. Common 根目录工具类阅读  
  6.   
  7.      FileUtils 比较有学习价值 ,提供文件各种类型的操作,有点模拟操作系统  
  8.      引用了大量的过滤器  
  9.   
  10.      FileSystemUtil 后去硬盘可用空间,  
  11.          执行CMD /-C C: 指令,获取结果Process,打开流获取返回结果,再截取  
  12.          最后的空间显示.该类自动完成对操作系统类型的判断,具有计算可用空间  
  13.          的功能  
  14.   
  15.      LineIterator 可以对文件进行迭代行访问,实现依赖于  
  16.           BufferReader, 很安全的设计具体参考官方用例  
  17.   
  18.      IOUtils提供以下操作  
  19.          * <li>closeQuietly - these methods close a stream ignoring nulls and                               exceptions  
  20.          * <li>toXxx/read - these methods read data from a stream  
  21.          * <li>write - these methods write data to a stream  
  22.          * <li>copy - these methods copy all the data from one stream to                     another  
  23.          * <li>contentEquals - these methods compare the content of two                      streams  
  24.      HexDump 封装了十六进制的转换  
  25.      IOCase   
  26.          * This class captures that difference, providing an enumeration to  
  27.          * control how filename comparisons should be performed. It also                 provides  
  28.          * methods that use the enumeration to perform comparisons.  
  29.   
  30.       IOExceptionWithCause 解决Jvava 6 兼容问  
  31.        
  32.      字节元组操作~  
  33.   
  34.   
  35.   
  36. 过滤器 filter包  
  37.       
  38.       IOFileFilter 继承 来自 java.io 的 FileFilter, FilenameFilter(这个姑且看作Java提供的规范, 是交由JVM去识别的, 与必须实现的接口规范)  
  39.   
  40.       AbstractFileFilter 抽象基类  该抽象类本身实现 IOFileFilter ,有默认操作  
  41.          
  42.       ConditionalFileFilter 接口  规定对内置过滤器列表的添加删除操作  
  43.   
  44.       FileFilterUtils 工具 采用静态函数 提供各种过滤器的获取,工厂类  
  45.       实现依赖于抽象 因为整个filter包地写的具体类都继承了AbstractFileFilter 和       实现了      FileFilterUtils  
  46.           
  47.       Filter包的其他类 几乎都实现了 AbstractFileFilter ; 然后有些还实现了  
  48.       ConditionalFileFilter ,基于该接口的实现拥有 集成多个过滤器功能,实现  
  49.       例如AndFilterFilter和OrFilterFilter主要采用对各个filter的accept函数  
  50.       的调用。  
  51.       
  52.       注意:其中有个Delegate的代理过滤器类 ,其实也就一个代理模式。  
  53.   
  54.             还有个WildsCard 实现了通配符的功能   
  55.   
  56.             IOCase 提供1大小写 2系统级 的字符串比较,判断操作  
  57.   
  58.       整个设计 所见即所得,一些需要的字符串来判断的操作,全部封装为类  
  59.       ,采用比较规范的命名  
  60.   
  61.   
  62. 工具包FilenameUtils类  
  63.   
  64.       提供对文件名的各种操作,支持windows和linuxs目录名,是一个解决了兼容问题  
  65.       的工具类,希望有机会能有用到他。  
  66.   
  67. Comparator :都实现了Comparator接口 和 Serializable 接口   
  68.       DefaultFileComparator 默认文件比较器  
  69.       ExtensionFileComparator 扩展名比较器  
  70.       LastModifiedFileComparator 用file.getLastModified方法得到文件修改日期做  
  71.       比较  
  72.       NameFileComparator 比较文件名字~ 引用IOCase工具类进行比较  
  73.       PathFileComparator 比较文件路径 依然采用有大小写控制比较功能的IOCase  
  74.       ReverseComparator  基于代理模式,通过调用函数对象顺序进行结果反转,需要  
  75.       用其它非代理比较器,进行构造(代理模式的特点)  
  76.       SizeFileComparator 文件大小比较器,引用FileUitls进行目录大小获取  
  77.        目录 文件...标志sumDirectoryContents标志 在输入如果是目录的情况下  
  78.        是否计算目录券大小  
  79.   
  80. Input 包:]  
  81.   -- 主要 -- ProxyInputStream 代理基类 - 字节流  
  82.   -- 主要 -- ProxyReader代理基类 - 字符流 与上面差不多~  
  83.       代理:  
  84.       CountInputStream 代理一个输入流,并随时可以读取已经读取的大小  
  85.       这在上传文件反馈用户上传进度的时候蛮有用的  
  86.       AutoCloseInputStream 当文件读完时会自动清理资源 引用CloseInputStream  
  87.       这个实现不明白是怎么回事  
  88.       CloseShieldInputStream close()设置基类inputstream对象为             CloseInputStream 这样的实现不知道什么回事  
  89.   
  90.   
  91.       纯继承  
  92.       ClosedInputStream read()方法总返回一,返回结束标志  
  93.       TeeInputStream 在读的同时,复制输出   
  94.       InputStream proxy that transparently writes a copy of all bytes read  
  95.  * from the proxied stream to a given OutputStream  
  96.   
  97.       NullInputSream 模拟实现,不知道  
  98.        A functional, light weight {@link InputStream} that emulates  
  99.  * a stream of a specified size.  
原创粉丝点击