IO包学习笔记

IO包学习笔记 

IO几乎都是实现序列化接口

Common 根目录工具类阅读

     FileUtils 比较有学习价值 ,提供文件各种类型的操作,有点模拟操作系统
     引用了大量的过滤器

     FileSystemUtil 后去硬盘可用空间,
         执行CMD /-C C: 指令,获取结果Process,打开流获取返回结果,再截取
         最后的空间显示.该类自动完成对操作系统类型的判断,具有计算可用空间
         的功能

     LineIterator 可以对文件进行迭代行访问,实现依赖于
          BufferReader, 很安全的设计具体参考官方用例

     IOUtils提供以下操作
         * <li>closeQuietly - these methods close a stream ignoring nulls and                               exceptions
         * <li>toXxx/read - these methods read data from a stream
         * <li>write - these methods write data to a stream
         * <li>copy - these methods copy all the data from one stream to                     another
         * <li>contentEquals - these methods compare the content of two                      streams
     HexDump 封装了十六进制的转换
     IOCase 
         * This class captures that difference, providing an enumeration to
         * control how filename comparisons should be performed. It also                 provides
         * methods that use the enumeration to perform comparisons.

      IOExceptionWithCause 解决Jvava 6 兼容问
     
     字节元组操作~



过滤器 filter包
	
      IOFileFilter 继承 来自 java.io 的 FileFilter, FilenameFilter(这个姑且看作Java提供的规范, 是交由JVM去识别的, 与必须实现的接口规范)

      AbstractFileFilter 抽象基类  该抽象类本身实现 IOFileFilter ,有默认操作
       
      ConditionalFileFilter 接口  规定对内置过滤器列表的添加删除操作

      FileFilterUtils 工具 采用静态函数 提供各种过滤器的获取,工厂类
      实现依赖于抽象 因为整个filter包地写的具体类都继承了AbstractFileFilter 和       实现了      FileFilterUtils
        
      Filter包的其他类 几乎都实现了 AbstractFileFilter ; 然后有些还实现了
      ConditionalFileFilter ,基于该接口的实现拥有 集成多个过滤器功能,实现
      例如AndFilterFilter和OrFilterFilter主要采用对各个filter的accept函数
      的调用。
    
      注意:其中有个Delegate的代理过滤器类 ,其实也就一个代理模式。

            还有个WildsCard 实现了通配符的功能 

            IOCase 提供1大小写 2系统级 的字符串比较,判断操作

      整个设计 所见即所得,一些需要的字符串来判断的操作,全部封装为类
      ,采用比较规范的命名


工具包FilenameUtils类

      提供对文件名的各种操作,支持windows和linuxs目录名,是一个解决了兼容问题
      的工具类,希望有机会能有用到他。

Comparator :都实现了Comparator接口 和 Serializable 接口 
      DefaultFileComparator 默认文件比较器
      ExtensionFileComparator 扩展名比较器
      LastModifiedFileComparator 用file.getLastModified方法得到文件修改日期做
      比较
      NameFileComparator 比较文件名字~ 引用IOCase工具类进行比较
      PathFileComparator 比较文件路径 依然采用有大小写控制比较功能的IOCase
      ReverseComparator  基于代理模式,通过调用函数对象顺序进行结果反转,需要
      用其它非代理比较器,进行构造(代理模式的特点)
      SizeFileComparator 文件大小比较器,引用FileUitls进行目录大小获取
       目录 文件...标志sumDirectoryContents标志 在输入如果是目录的情况下
       是否计算目录券大小

Input 包:]
  -- 主要 -- ProxyInputStream 代理基类 - 字节流
  -- 主要 -- ProxyReader代理基类 - 字符流 与上面差不多~
      代理:
      CountInputStream 代理一个输入流,并随时可以读取已经读取的大小
      这在上传文件反馈用户上传进度的时候蛮有用的
      AutoCloseInputStream 当文件读完时会自动清理资源 引用CloseInputStream
      这个实现不明白是怎么回事
      CloseShieldInputStream close()设置基类inputstream对象为             CloseInputStream 这样的实现不知道什么回事


      纯继承
      ClosedInputStream read()方法总返回一,返回结束标志
      TeeInputStream 在读的同时,复制输出 
      InputStream proxy that transparently writes a copy of all bytes read
 * from the proxied stream to a given OutputStream

      NullInputSream 模拟实现,不知道
       A functional, light weight {@link InputStream} that emulates
 * a stream of a specified size.
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值