Java总结IO之总集篇

作者: e4e52c116681 | 来源:发表于2018-10-13 09:58 被阅读1次

    Java总结IO四篇:

    名称
    第零篇 Java总结IO之总集篇
    第一篇 Java总结IO第一篇之字符流与字符编码
    第二篇 Java总结IO第二篇之字节流与字符流转化
    第三篇 Java总结IO第三篇之File类和Properties类
    第四篇 Java总结IO第四篇之其他IO流对象

    一、字符流概览

    读入流I(用于读取数据源--内存、磁盘、键盘)
     Reader
         |---★InputStreamReader     <- isr- 字节输入转换字符流           
             |---★FileReader      <- pr-文件读取流
         |---★BufferedReader      <- pfw-缓冲读取   
         |---PipedReader
         |---★CharArrayReader        <- car-字符数组读取流 
         |---★StringReader           <- sr-字符串读取流  
         |---FilterReader          
         |---URLReader
    
    输出流O(将数据源引向目的地--内存、磁盘、控制台)
    Writer                                     
        |---★OutputStreamWriter   <-osw-字节输入转换字符流                
            |---★FileWriter       <- fw-文件书写流             
        |---★BufferedWriter       <- bfw-缓冲书写                     
        |---PipedWriter   
        |---★CharArrayWriter        <- caw-字符数组书写流   
        |---★StringWriter           <- sw-字符串书写流                
        |---FilterWriter                       
        |---★PrintWriter          <- pw-字符打印输出流                      
    

    二、字节流概览

    读入流I(用于读取数据源--内存、磁盘、键盘)
    InputStream
        |---★FileInputStream              <- fis-文件输入流
        |---★ByteArrayInputStream         <- pais-字节数组输入流
        |---★ObjectInputStream            <- pis-对象输入流
        |---★StringBufferInputStream        <- sbis-字符串缓冲输入流
        |---PipedInputStream               <- pis-管道输入流
        |---FilterInputStream              <- ftis-过滤输入流
            |---★DataInputStream           <- 基本类型输入流
            |---★BufferedInputStream       <- 缓冲输入流
            |---DigestInputStream
            |---PushbackInputStream
    
    输出流O(将数据源引向目的地--内存、磁盘、控制台)
    OutputStream
        |---★FileOutputStream           <- fos-文件输出流
        |---★ByteArrayOutputStream       <- baos-字节数组输出流
        |---★ObjectOutputStream          <- oos-对象输出流
        |---PipedOutputStream           <- pos-管道输出流
        |---FilterOutputStream          <- ftos-过滤输出流
            |---★DataOutputStream       <- dos-基本类型输出流
            |---★BufferedOutputStream   <- bfos-缓冲输出流
            |---DigestOutputStream      
            |---★PrintStream            <- ps-字节打印输出流   
    

    三、故事时间:

    看起来这么多的类,是不是有点晕,先且听一个故事

    第一章 背景(四大流派)

    传说中江湖四大流派字符输入流,字符输出流,字节输入流,字节输出流,原本出自一家[IO流]。
    IO流派根据性别修炼功法,分为输入流输出流两大支派,男习输入流,女习输出流
    (可以理解为:男生赚钱输入,女生花钱输出...千万别多想...)

    由于【字符】宗师偏爱文本,和【字节】宗师万物平等理念不合,所谓道不同,不相为谋。
    【字符】宗师敢爱敢恨,自立门派,IO流自此分成两家:字符流字节流

    字符输入流开山祖师名叫Reader,性别男 ; 字符输出流开山祖师名叫Writer,性别女。
    相传是夫妻二人,两人合作为文本操作界带来屡屡清风,但看到【图片】,【视频】等人就心有余而力不足了。

    字节输入流开山祖师名叫InputStream,性别男 ; 字节写流开山祖师名叫OutputStream,性别女。
    相传是也夫妻二人,两人合作称为二进制操作界的栋梁,但识别字符的能力偏弱。

    第二章 奇子(转换字节流)

    字符流字节流向来各行其事,很少有交集。
    ReaderWriter有两个奇子,名叫InputStreamReader(男)和OutputStreamWriter(女),
    可以和字节流打交道,并让字节流派的人归于字符流派。世称两人:转换字节流

    第三章 当代(四大流派掌门人)

    字符输入流掌门人:FileReader,性别男,InputStreamReader之子
    字符输出流掌门人:FileWriter,性别女,OutputStreamWriter之女
    字节输入流掌门人:FileInputStream,性别男,InputStream之子
    字节输出流掌门人:FileOutputStream,性别女,OutputStream之女

    第四章 装备(装饰流)

    四大流派都拥有装备,根据不同装备可以更容易做事

    装备1:黄金卡车--Buffered(支持四大门派)
    作用:将数据装入卡车,不用一个一个的搬,而是一车一车的搬。

    字符输入流配车:BufferedWriter
    字符输出流配车:BufferedReader
    字节输入流配车:BufferedInputStream
    字节输出流配车:BufferedOutputStream

    装备2:基本数据类型黄金铲--Data(仅支持字节两派)
    作用:读写基本数据类型实现起来比较费劲,要考虑到不同类型占的字节数区分对待
    有了这个装备,一铲一个,给你自动分类型,存取基本数据类型的不二法器
    字节输入流配铲:DataInputStream
    字节输出流配铲:DataOutputStream

    装备3:其他数据类型黄金铲

    1.字节数组铲--ByteArray(仅支持字节两派)
    字节输入流配铲:ByteArrayInputStream
    字节输出流配铲:ByteArrayOutputStream
    2.字符数组黄金铲--CharArray(仅支持字符两派)
    字符输入流配铲:CharArrayReader
    字符输出流配铲:CharArrayWriter
    3.字符串组黄金铲--String(支持三大门派)
    字符输入流配铲:StringReader
    字符输出流配铲:StringWriter
    字节输入流配铲:StringBufferInputStream
    4.对象黄金铲--Object(仅支持字节两派)
    字节输入流配铲:ObjectInputStream
    字节输出流配铲:ObjectOutputStream

    好了,基本上也就这样,当你要操作文件时,想一想:
    是那个流派的?,男的女的(I还是O)?想不想换流派?要不要装备帮忙?相信会对你有帮助。

    四、IO五篇地址
    名称
    第零篇 Java总结IO之总集篇
    第一篇 Java总结IO第一篇之字符流与字符编码
    第二篇 Java总结IO第二篇之字节流与字符流转化
    第三篇 Java总结IO第三篇之File类和Properties类
    第四篇 Java总结IO第四篇之其他IO流对象

    后记:捷文规范

    1.本文成长记录及勘误表
    项目源码 日期 备注
    V0.1--无 2018-10-13 Java总结IO之总集篇
    2.更多关于我
    笔名 QQ 微信 爱好
    张风捷特烈 1981462002 zdl1994328 语言
    我的github 我的简书 我的CSDN 个人网站
    3.声明

    1----本文由张风捷特烈原创,转载请注明
    2----欢迎广大编程爱好者共同交流
    3----个人能力有限,如有不正之处欢迎大家批评指证,必定虚心改正
    4----看到这里,我在此感谢你的喜欢与支持

    相关文章

      网友评论

        本文标题:Java总结IO之总集篇

        本文链接:https://www.haomeiwen.com/subject/iitoaftx.html