一  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. debian系统搭建telnet服务器以及telnet远程登陆--加油

    1.安装软件 sudo apt-get install telnet* 2.创建telnet文件 vim /etc/xinetd.d/telnet telnet内容 1 service telnet ...

  2. ES6对象的新增方法的使用

    Object.assign Object Object.assign(target, ...sources) 将所有可枚举属性的值从一个或多个源对象复制到目标对象 参数: target 目标对象 so ...

  3. [c++] 细节

    \r退格:printf("asdflkj\r111")输出111flkj(https://blog.csdn.net/tyshtang/article/details/436770 ...

  4. google 谷歌Python语言规范

    Python语言规范 https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_lan ...

  5. Netperf测试技巧

    Netperf测试技巧   Netperf测试技巧 1.概况 Netperf是一种网络性能的测量工具,主要针对基于TCP或UDP的传输.Netperf根据应用的不同,可以进行不同模式的网络性能测试,即 ...

  6. Wordpress用文件记录访客 IP和访问量

    1.记录访问量,显示访客IP [php原码] <?php /*打开文件用于记录访问量,如果文件不存在自动创建*/ $counterFile = "counter.txt"; ...

  7. http协议工作原理及工作流程

    什么是url ? url = 协议 + 域名 + 资源路径 比如: https://www.baidu.com/index.html http : 超文本传输协议 https: 安全套接字协议 HTT ...

  8. HTTP、TCP、UDP,Socket,HTTPS

    TCP   HTTP   UDP三者的关系如下: TCP/IP是个协议组,可分为四个层次:网络接口层.网络层.传输层和应用层. 在网络层有IP协议.ICMP协议.ARP协议.RARP协议和BOOTP协 ...

  9. SpringMVC MVC 架构模式

    MVC 架构模式 MVC(Model.View 和 Controller)是一种架构模式,它是按照职责划分的思想将系统操作分为三个模块进行处理,每个模块负责一个职责,而且模块之间可以相互交互通信,共同 ...

  10. go输出九九乘法表和金字塔

    用go语言实现输出九九乘法表和金字塔: 1.输出九九乘法表: 代码示例: package main import ( "fmt" "time" ) //实现99 ...