Java Io流 框图 及简介

1.    I/O流的概述

1.1 流的概述

Java的I/O流是实现输入/输出的基础,他可以方便的实现数据的输入/输出操作,Java中把不同的输入/输出源抽象表述为“流“,通过流的方式允许Java程序使用相同的方式来访问不同的输入/输出源。”流“是数据传输的通道。流是指一连串流动的字符,是以先进先出方式发送信息的通道。

Java中,处理字节流的两个基础类是InputStream和OutputStream,用于处理字符流的两个基础类是Reader和Writer。

1.2   流的分类

1.2.1       输入流和输出流

按照流的方向,可分为输入流和输出流。

输入流(InputStream):只能从中读取数据,而不能向其中写入数据。

输出流(OutputStream):只能向其中写入数据,而不能从中读取数据。

1.2.2 节点流和处理流

按照流的“角色“可分为”节点流“和”处理流“。

可以向一个特定的IO设备(如磁盘或网络)读/写数据的流,称为节点流。节点流,又被称为低级流。实现对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写的流,称为处理流。处理流是处理流的流,它用来处理其他的流,处理流又被称为高级流。

2.    InputStream和OutputStream

InputStream/OutputStream是抽象类,提供了输入/输出处理的基本接口,它们读写流的方式是以字节为单位进行的。下面主要看一下实现其接口的子类。

2.1 InputStream

在java.io包中所有以字节方式读取数据的流都是InputStream的派生类。

2.1.1 低级InputStream类(节点流)

ByteArrayInputStream:为读取字节数组设计的流,允许内存的一个缓冲区被当做InputStream使用。

PipedInputStream:管道流,产生一份数据,能被写入相应的PipedOutputStream。

FileInputStream:用于读取文件中的信息。它用于从文件中读取二进制数据。

FilterInputStream:(抽象类)它派生于InputStream功能在于将一个流连接到另一个流的末端,将两种流连接起来。

2.1.2 高级InputStream类(处理流)

DataInputStream:FilterInputStream抽象类的子类,提供了用于从另一个流中读取简单数据类型和String类型数据的读取方法,这样既可将底层的读取字节的细节隐藏起来,而让程序员直接去处理简单数据类型或String类型的数据。

BufferedInputStream:提供内部缓冲能力的字节流,它避免了每次需要数据时都必须进行读取,可以减少对系统资源的读写,提高程序的运行效率。

2.1.3 层次结构图

2.2   OutputStream

在java.io包中所有以字节方式读取数据的流都是OutputStream的派生类。

 

2.2.1 低级OutputStream(节点流)

ByteArrayOutputStream:按照字节数组方式向设备中写出字节流的类。

PipedOutputStream:管道流,和PipedInputStream相对应。

2.2.2 高级OutputStream(处理流)

DataOutputStream:FilterOutputStream抽象类的子类,提供了用于向另一个流中写入简单数据类型和String类型数据的读取方法,这样既可将底层的写入字节的细节隐藏起来,而让程序员直接去处理简单数据类型或String类型的数据。

BufferedOutputStream:提供内部缓冲能力的字节流,它避免了每次需要写入数据时都必须执行写入动作,可以减少对系统资源的读写,提高程序的运行效率。

2.2.3 层次结构图

 

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值