您的位置:首页 > 编程语言 > Java开发

java Io流基本概念

2015-09-28 18:01 337 查看
一什么是流

流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。数据源可以是文件,内存或者网络等。同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。流的创建是为了更方便地处理数据的输入输出。

流分为字节流和字符流。字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自动转换成字符。

字节流由InputStream和OutputStream处理,而字符流由Reader和Writer处理。Reader和Writer是Java后加入的处理类,出于让数据的处理更方便的目的。

按操作数据分为:字节流和字符流.
按流的方向分为:输入和输出流.


二.IO流的四大抽象类:

![这里写图片描述](https://img-blog.csdn.net/20150928180457040)


字节流:操作的对象是媒体文件,字节流处理单元为 1 个字节,操作字节和字节数组。

字符流:操作的对象是纯文本的数据,字符流处理的单元为 2 个字节的 Unicode 字符,分别操作字符、字符数组或字符串。

三.流的工作原理

与水流原理基本一致,通过二进制方式输入或输出!
可以通过一个更强大的管道,将二进制值转换为其它形式!


四.流分类的补充

流的方向不同:输入流、输出流

流的单位不同:字节流、字符流

流的功能不同:节点流、处理流


五.什么是节点流,什么是处理流

@按照流是否直接与特定的地方(如磁盘、内存、设备等)相连,分为节点流和处理流两类。
节点流:可以从或向一个特定的地方(节点)读写数据。
处理流:是对一个已存在的流的连接和封装,通过所封装的流的功能调用实现数据读写。如BufferedReader。处理流的构造方法总是要带一个其他的流对象做参数。一个流对象经过其他流的多次包装,称为流的链接。


六.Java流类图结构:


七. 常用流的具体分类:

字节输入流:InputStream ↓

FileInputStream(以文件方式)

ByteArrayInputStream(以字节数组方式)

StringBufferInputStream(以字符传方式)

ObjectInputStream(以对象方式)


字节输出流:OutputStream ↓

FileOutputStream(以文件方式)

ByteArrayOutputStream(以字节数组方式)

ObjectOutputStream(以对象方式)


字符输入流:Reader

BufferedReader(缓冲字符流)

CharArrayReader(字符数组方式)

InputStreamReader(以字节方式编译到字符方式)

FileReader(以字符形式读取文件方式)

StringReader(以源文件为字符串的字符流方式)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  io流