Java-IO流的继承结构
一 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流的继承结构的更多相关文章
- java IO流的继承体系和装饰类应用
java IO流的设计是基于装饰者模式&适配模式,面对IO流庞大的包装类体系,核心是要抓住其功能所对应的装饰类. 装饰模式又名包装(Wrapper)模式.装饰模式以对客户端透明的方式扩展对象的 ...
- java IO流详解
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流学习总结
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流详尽解析
流的概念和作用 学习Java IO,不得不提到的就是JavaIO流. 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- JAVA.IO流学习笔记
一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...
- 【Java基础】Java IO流的总结
Java IO流分为输入流和输出流,而输入流和输出流中又分字符流和字节流.顾名思义,输入流则是输入到程序中计算,输出流是把程序的结果输出到文件或者设备.而字符流输入输出以字符为单位,字节流则是以字节为 ...
- 【转载】JAVA IO 流的总结
来自http://www.cnblogs.com/oubo/archive/2012/01/06/2394638.html,写的很详细 Java流操作有关的类或接口: Java流类图结构: 流的概念和 ...
- Java IO流学习总结(转)
Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输 ...
- Java IO流学习总结(1)
Java IO流学习总结 Java流操作有关的类或接口: Java流类图结构: 流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本 ...
随机推荐
- python爬虫——汽车之家数据
相信很多买车的朋友,首先会在网上查资料,对比车型价格等,首选就是"汽车之家",于是,今天我就给大家扒一扒汽车之家的数据: 一.汽车价格: 首先获取的数据是各款汽车名称.价格范围以及 ...
- OO第三单元作业(JML)总结
OO第三单元作业(JML)总结 目录 OO第三单元作业(JML)总结 JML语言知识梳理 使用jml的目的 jml注释结构 jml表达式 方法规格 类型规格 SMT Solver 部署JMLUnitN ...
- openshift 3.11 安装部署
openshift 3.11 安装部署 openshift安装部署 1 环境准备(所有节点) openshift 版本 v3.11 1.1 机器环境 ip cpu mem hostname OSsys ...
- Ubuntu 20.04 配置多网卡链路聚合
Ubuntu 20.04 配置多网卡链路聚合 多网卡IP配置 首先查看网卡信息 root@it:~# ip add 1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65 ...
- SecureCRT配置自动记录日志
很多人用SecureCRT时,希望自动记录日志,一个是方便以后查阅,一个是对自己的操作有个记录.可以看看自己做了什么操作,有时甚至可以看看之前是不是犯了什么错,是个很不错的功能. 设置很简单,还可以根 ...
- debian配置---->/etc/apt/sources.list apt基本源设置指南
yum或apt基本源设置指南 关于: 管理Linux服务器的运维或开发人员经常需要安装软件,最常用方式应该是通过Linux系统提供的包管理工具来在线安装,比如centos的yum,ubuntu或d ...
- Ansible_处理失败的任务
一.Ansible处理任务失败 1.管理play中任务错误 1️⃣:Ansible评估任务的返回代码,从而确定任务是成功还是失败 2️⃣:通常而言,当任务失败时,Ansible将立即在该主机上中止pl ...
- Linux_搭建Samba服务(认证访问)
[RHEL8]-SMBserver:[RHEL7]-SMBclient !!!测试环境我们首关闭防火墙和selinux(SMBserver和SMBclient都需要) [root@localhost ...
- dmidecode -t1 | egrep "Manufacturer|Product Name"
# dmidecode -t1 | egrep "Manufacturer|Product Name" Manufacturer: Loongson Product Name: L ...
- 11.7 iostat: I/O信息统计
iostat是I/O statistics(输入/输出统计)的缩写,其主要功能是对系统的磁盘I/O操作进行监视.它的输出主要是显示磁盘读写操作的统计信息,同时也会给出CPU的使用情况.同vmstat命 ...