zoukankan      html  css  js  c++  java
  • javaIO:java IO 总结 持续更新

    字节流、字符流继承关系

    前几篇文章讲解了字节流、字符流的使用,不过Java提供给用户的流类远不止此,限于篇幅原因,没办法一一讲解,而且也没有必要一一讲解,就像我在写博客的时候多次提到的,有问题的时候学会查JDK API即可。OK,虽然不一一讲解每种流,我自己简单画了几张UML图,说明一下字节输入流、字节输出流、字符输入流、字符输出流这四个流类的子类继承关系。

    1、字节输入流

    2、字节输出流

    3、字符输入流

    4、字符输出流

     

    总结一下流类的使用

    1、File是一些文件/文件夹操作的源头,File代表的就是文件/文件夹本身,因此无论如何,使用IO的第一步是建议开发者根据路径实例化出一个File

    2、考虑使用字符流还是字节流。操作文本一般使用字符流,即Reader和Writer;操作字节文件使用字节流,即InputStream和OutputStream

    3、选择使用输入流还是输出流。把内容从文件读入Java内存使用输入流,即Reader和InputStream;把内容从Java内存读到文件使用输出流,即Writer和OutputStream

    4、使用字符流使用BufferedReader和BufferedWriter,它们的构造函数中的参数分别是Reader和Writer,因此既可以实例化出FileReader和FileWriter,也可以实例化出InputStreamReader和OutputStreamWriter,作为构造函数的参数传入BufferedReader和BufferedWriter

    5、FileInputStream和FileOutputStream可以直接操作文件的读写,它们没有做缓存

    6、ObjectOutputStream和ObjectInputStream,它们分别以OutputStream和InputStream作为构造函数的参数,因此可以实例化出FileOutputStream和FileInputStream并传入

    7.可以使用字节流BufferedOutputStream和BufferedInputStream(他们是继承FileInputStream的)来操作字节流,这是字节流实现了缓存区的

    8.可以使用DataInputStream和DataOutputStream字节流来读取基本数据(他们是继承FileInputStream的

    9.如果需要在内存中保存一串字节,而不是写出到文件中可以使用ByteArrayInputStream和ByteArrayOuputStream进行保存,然后通过写出转为各种流


    更多详细代码实现可看java io 详细代码实现 纪录


    另外,请知,IO是Java的23种设计模式中的装饰器模式的典型应用,这在讲解设计模式的时候会专门讲到。



  • 相关阅读:
    Linux 性能工具安装部署
    JVM 详解
    十大经典排序算法动画与解析
    Linux 安装Jdk、mysql、apache、php、tomcat、nginx
    使用mysqldump备份数据库
    Linux 安装 python3.6 ,并且配置 Pycharm 远程连接开发
    python安装途中遇到的问题和解决方法
    Linux安装python2.7、pip和setuptools
    SELENIUM如何调用FIREFOX时加载插件
    NOSQL之MEMCACHE
  • 原文地址:https://www.cnblogs.com/signheart/p/14442675.html
Copyright © 2011-2022 走看看