zoukankan      html  css  js  c++  java
  • Java之IO(十三)File、Filter、Piped、String和InputStreamReader与OutputStreamWriter

      转载请注明原出处:http://www.cnblogs.com/lighten/p/7264196.html

    1.前言

      断更一段时间,计划果然赶不上变化(还是太懒...)。这次一次性将剩余的5组字符流说完,原本也没有什么值得一说的了,再花两节描述完整个IO包的相关剩余内容和总结,就结束这一章节的学习了。看源代码可以将一些似是而非的不明之处明确,所以还是很有必要的。

    2.Filter

      FilterReader和FilterWriter没有任何值得一提的地方,只是包装了一下所接受持有的其它Reader和Writer,然后调用其相关接口定义的方法而已。是一个抽象父类,比起字节流的Filter相关内,字符流的没有起到什么作用,实现类也少。

    3.InputStreamReader和OutputStreamWriter

       这两个类原本是应该好好讲一下的,但是由于其实现实际上是借助了StreamDecoder和StreamEncoder这两个同样继承自Reader和Writer的类,InputStreamReader和OutputStreamWriter也就是调用了其类的相关方法。在初始化的时候,通过其静态方法,接受一个字节流产生对应的StreamDecoder和StreamEncoder。由于这两个类是sun包下,无法看到源代码,也就没什么可说的(还是懒),不过作用应该就是对字节按照指定的编码方式进行编码成字符。

    4.File

      FileReader和FileWriter就是继承自上述的InputStreamReader和OutputStreamWriter,里面传递的是创建的一个文件字符流。整个过程其实是通过StreamDecoder和StreamEncoder包装文件的字节流,将其内容转换成字符。其它的也没什么。

    5.Piped

      管道字符流和管道字节流几乎一模一样,就是一个char和byte的区别。直接看前面所讲的管道字节流的相关内容就可以了。这里不再阐述。

    6.String

      StringReader和StringWriter的作用和CharArrayReader和CharArrayWriter基本一样,不过一个接收字符数组,一个接收字符串罢了,其它的没什么区别。和ByteArray字节流作用一致。

  • 相关阅读:
    Kafka集群搭建
    Easyui dialog中嵌入iframe
    图表插件Charts.js的使用
    抽象工厂
    工厂方法
    简单工厂模式
    认识Git
    代理模式
    原型设计Axure的基本使用
    MVC Api 的跨项目路由
  • 原文地址:https://www.cnblogs.com/lighten/p/7264196.html
Copyright © 2011-2022 走看看