`

Commons 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.
分享到:
评论

相关推荐

    java io流学习笔记1

    例如,Apache Commons IO库提供了许多便利的工具类,简化了常见的IO操作,如FileUtils.copyFile()方法用于便捷地复制文件。 在提供的压缩包文件名称列表中,我们看到多个以".dic"结尾的文件,这通常是字典文件,...

    林信良java学习笔记

    林信良的Java学习笔记是对于初学者和有经验的开发者来说宝贵的资源,它涵盖了从基础概念到高级特性的全面讲解。这份笔记可能包括了类、对象、接口、继承、多态等核心概念,以及异常处理、集合框架、IO流、多线程、...

    Jakarta Commons cookbook.chm与中文版的笔记

    在阅读《Jakarta Commons Cookbook》时,你可以学习如何有效地利用这些组件来提升你的Java项目。例如,了解如何使用` FileUtils.copyFile()`方法复制文件,或通过` StringUtils.join()`将数组元素连接成字符串。此外...

    [Jakarta Commons笔记]

    【Jakarta Commons笔记】 Jakarta Commons是Apache软件基金会的一个项目集合,它提供了许多Java开发中常用的工具类和组件。这个项目旨在减少重复的工作,通过共享和重用代码,提高开发效率。Jakarta Commons包含了...

    dwr3 学习笔记<一>

    【标题】"dwr3 学习笔记&lt;一&gt;" 涉及的主要知识点是Direct Web Remoting (DWR)框架的第三版。DWR是一种Java库,它允许Web应用程序在客户端(通常是JavaScript)和服务器端(Java)之间进行实时通信,从而实现动态的、...

    java校招学习笔记

    "java校招学习笔记"显然是针对应届毕业生或求职者准备的,旨在帮助他们掌握Java的基础知识和校招面试中常见的技术问题。这份笔记可能包含了从基础概念到进阶主题的全面概述,以提高求职者的竞争力。 首先,Java的...

    struts2学习笔记

    在深入探讨Struts2的学习笔记之前,先来理解它的核心概念。 **1. Struts2依赖的JAR包** Struts2的运行离不开一系列的依赖库,包括: - `struts2-core-2.1.6.jar`:这是Struts2的核心库,包含了Struts2框架的主要...

    Strtus2学习笔记

    - commons-io的jar包用于文件上传和下载 - 复制struts.xml至项目src目录 2. **配置struts.xml** - 注释掉多余配置 3. **创建HelloStruts2_1.jsp页面** - 修改jsp文件的默认编码属性:Window &gt; Preferences &gt; Web...

    Struts2.1学习笔记

    ### Struts2.1学习笔记 #### Struts2的来源与优点 - **来源**:Struts2是在WebWork2的基础上发展起来的,它继承了WebWork2的优点,并且进行了改进,使其更适合现代Web应用程序的需求。与Struts1相比,Struts2的...

    commons-net-3.6.1.1-bin.zip

    例如,IO学习笔记中可能详细介绍了如何使用BufferedReader和BufferedOutputStream等IO流来配合FTPClient进行文件的读写操作。通过熟练掌握这些工具类,开发者可以提高代码的可读性和可维护性,同时减少网络编程时...

    FCKEDITOR学习笔记资料.pdf

    ${commons.io.version} &lt;groupId&gt;org.devlib.schmidt &lt;artifactId&gt;imageinfo &lt;version&gt;1.7 &lt;groupId&gt;net.fckeditor&lt;/groupId&gt; &lt;artifactId&gt;java-core &lt;version&gt;2.6 &lt;groupId&gt;org.slf4j &lt;artifactId&gt;...

    springMVC-个人学习笔记.docx下载

    对于 spring3.2.3 版本,除了 Spring 自身的库,还需要 Commons 库,如 Commons FileUpload、Commons IO 和 Commons Lang。在 web.xml 文件中,需要配置 DispatcherServlet,例如: ```xml &lt;servlet-name&gt;...

    Struts学习笔记

    ### Struts学习笔记 #### 一、Struts2框架简介 Struts2是一个开源的、用于开发Java EE Web应用程序的MVC框架。它基于Struts 1进行了改进,提供了更加强大和灵活的功能,比如拦截器、动态方法调用、类型转换等。...

    struts学习笔记

    - **第三方依赖**:commons-fileupload-1.2.1.jar、commons-io-1.3.2.jar、commons-logging-1.0.4.jar、xwork-2.1.2.jar、ognl-2.6.11.jar、freemarker-2.3.13.jar - **获取配置文件**:struts.xml,需放置于项目的...

    struts2学习笔记十四(第14讲.Struts2的文件上传和下载续二)

    在本篇“Struts2学习笔记十四”中,我们将深入探讨Struts2框架如何实现文件上传和下载功能,这是web应用中常见的需求,尤其在处理用户提交的表单数据时。我们将不涉及具体代码,而是重点讲解相关概念和技术原理。 ...

    struts2学习笔记十三(第13讲.Struts2的文件上传和下载续)

    在本篇“Struts2学习笔记十三”中,我们将深入探讨Struts2如何处理文件上传和下载,这是Web开发中常见的需求。 文件上传在Web应用中广泛用于让用户提交图片、文档或其他类型的数据。Struts2提供了一个名为`...

    Java学习笔记-个人整理的

    \contentsline {chapter}{Contents}{2}{section*.1} ... {14.6}apache.commons}{211}{section.14.6} {15}sqlite3}{213}{chapter.15} {16}Web基础}{215}{chapter.16} {16.1}HTML}{215}{section.16.1} {...

    struts2综合笔记

    - `commons-io-2.0.1.jar`: 文件操作支持库。 - `commons-lang-2.5.jar`: Java 语言包增强。 - 可参考 `struts-2.3.15.3-all\struts-2.3.15.3\apps\struts2-blank\WEB-INF\lib` 中的 Jar 包。 2. **配置核心过滤...

    java笔记fdsfdsfdsdf

    【标题】:“Java笔记fdsfdsfdsdf”实际上可能是指一份关于Java编程语言的学习笔记,其中“fdsfdsfdsdf”可能是由于输入错误或者是个无意义的占位符。在这个标题下,我们可以推测笔记内容可能涵盖了Java的基础到进阶...

Global site tag (gtag.js) - Google Analytics