一  IO流的继承结构如下

二  字节流

1.InputStream(字节流读取数据),为抽象类,不可创建对象;其具体实现需要通过子类FileInputStream(读取文件数据)、BufferedInputStream(缓冲区读取文件数据)、ObjectInputStream(反序列化)来实现

  • 常用方法:

    int read() 从输入流中读取数据的下一个字节
    read(byte[] b) 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中
    read(byte[] b, int off, int len) 将输入流中最多 len 个数据字节读入 byte 数组,off表示存时的偏移量
    close() 关闭此输入流并释放与该流关联的所有系统资源

  • FileInputStream(读取文件数据)

    直接插在文件上,直接读取文件数据;

    构造方法:FileInputStream(File file)---其参数为File类型的变量,即FileInputStream(File file) == FileInputStream(String pathname) 

  • BufferedInputStream(缓冲区读取文件数据)

    先通过缓冲区缓存(在创建 BufferedInputStream 时,会创建一个内部缓冲区数组,默认8k大小),然后按批次读取缓冲区的数据,这样减少了读取次数,可提高效率

    构造方法:BufferedInputStream(InputStream in)---其参数为父类类型的变量,由于父类InputStream为抽象类,需要用其子类来实例化对象,

            即BufferedInputStream(InputStream in) == BufferedInputStream(new FileInputStream(File file) == BufferedInputStream(new FileInputStream(String pathname))

  • ObjectInputStream(反序列化)

    ObjectInputStream对以前使用ObjectOutputStream写入的基本数据和对象进行反序列化重构对象

    构造方法:ObjectInputStream(InputStream in) ---创建从指定 InputStream 读取的 ObjectInputStream

    普通方法:readObject(),从 ObjectInputStream 读取对象

2. OutputStream(字节流写出数据),为抽象类,不可创建对象;其具体实现需要通过子类FileOutputStream(写出数据)、BufferedOutputStream(缓冲区写出文件数据)、ObjectOutputStream(序列化)来实现

  • 常用方法:   

    close() 关闭此输出流并释放与此流相关的所有系统资源
    flush() 刷新此输出流并强制写出所有缓冲的输出字节
    write(byte[ ] b,int off ,int len) 将指定byte数组中从偏移量off开始的len个字节写入输出流
    write(int b) 将指定的字节写入此输出流

  • FileOutputStream(读取文件数据)

    直接插在文件上,直接写出文件数据;

    构造方法:FileOutputStream(File file)---其参数为File类型的变量,即FileOutputStream(File file) == FileOutputStream(String pathname) 

  • BufferedOutputStream(缓冲区写出文件数据)

    先通过缓冲区缓存(在创建 BufferedInputStream 时,会创建一个内部缓冲区数组,默认8k大小),然后按批次读取缓冲区的数据,这样减少了读取次数,可提高效率

    构造方法:BufferedOutputStream(InputStream in)---其参数为父类类型的变量,由于父类OutputStream为抽象类,需要用其子类来实例化对象,

            即BufferedOutputStream(OutputStream in) == BufferedOutputStream(new FileOutputStream(File file) == BufferedOutputStream(new FileOutputStream(String pathname))

  • ObjectOutputStream(序列化)

    ObjectOutputStream 将 Java 对象的基本数据类型写入 OutputStream,通过在流中使用文件可以实现对象的持久存储。如果流是网络套接字流,则可以在另一台主机上或另一个进程中重构对象。

    构造方法:ObjectOutputStream(OutputStream out)---创建写入指定 OutputStream 的 ObjectOutputStream

    普通方法:writeObject(Object obj),将指定的对象写入 ObjectOutputStream

Java-IO流的继承结构的更多相关文章

  1. java IO流的继承体系和装饰类应用

    java IO流的设计是基于装饰者模式&适配模式,面对IO流庞大的包装类体系,核心是要抓住其功能所对应的装饰类. 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的 ...

  2. java IO流详解

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  3. Java IO流学习总结

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  4. Java IO流详尽解析

    流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  5. JAVA.IO流学习笔记

    一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...

  6. 【Java基础】Java IO流的总结

    Java IO流分为输入流和输出流,而输入流和输出流中又分字符流和字节流.顾名思义,输入流则是输入到程序中计算,输出流是把程序的结果输出到文件或者设备.而字符流输入输出以字符为单位,字节流则是以字节为 ...

  7. 【转载】JAVA IO 流的总结

    来自http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html,写的很详细 Java流操作有关的类或接口: Java流类图结构: 流的概念和 ...

  8. Java IO流学习总结(转)

    Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...

  9. Java IO流学习总结(1)

    Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...

随机推荐

  1. 基于 el-form 封装一个依赖 json 动态渲染的表单控件

    nf-form 表单控件的功能 基于 el-form 封装了一个表单控件,包括表单的子控件. 既然要封装,那么就要完善一些,把能想到的功能都要实现出来,不想留遗憾. 毕竟UI库提供的功能都很强大了,不 ...

  2. 图扑软件正式加入腾讯智维生态发展计划,智能 IDC 开启数字经济新征程

    4 月 23 日,主题为<智汇科技,维新至善>的腾讯数据中心智维技术研讨会在深圳胜利召开,发布了腾讯智维 2.0 技术体系,深度揭秘了智维 2.0 新产品战略和技术规划.图扑软件(High ...

  3. git取消更改 恢复版本命令

      #删除远程的xxx分支 git push origin :xxx #取消对文件的修改.还原到最近的版本,废弃本地做的修改. git checkout -- <file>   #取消已经 ...

  4. Pytorch系列:(六)自然语言处理NLP

    这篇文章主要介绍Pytorch中常用的几个循环神经网络模型,包括RNN,LSTM,GRU,以及其他相关知识点. nn.Embedding 在使用各种NLP模型之前,需要将单词进行向量化,其中,pyto ...

  5. mysql基本命令(增,查,改,删)

    from oldboy egon

  6. zabbix监控之概念和安装

    一.为什么要要监控 (1)在需要的时刻,提前提醒我们服务器出问题了: (2)当出问题之后,可以找到问题的根源: (3)检查网站/服务器的可用性 1.监控范畴 硬件监控.系统监控.服务监控.性能监控.日 ...

  7. Linux中级之ansible概念及hoc命令行调用模式

    一.Ansible简介 ansible是新出现的开源的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.cfengine.chef.func.fabric)的优点,实现了批量系统 ...

  8. 3.21-22 od、tee

    3.21 od:按不同进制显示文件       od命令用于输出文件的八进制.十六进制或者其他格式编码的字节,通常用于显示或查看文件中不能直接显示在终端的字符.   -A 地址进制    按指定的进制 ...

  9. Servlet中的过滤器和监听器

    1.什么是过滤器? Servlet规范中定义的一种特殊的组件,用来拦截容器的调用过程.容器收到请求之后,首先调用过滤器,然后再调用Servlet 2.生命周期: 1.servlet:servlet的生 ...

  10. Springboot2.x入门——helloWorld

    Springboot2.x入门--helloWorld 一.简介 1.1 Springboot简介 Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的 ...