java Io流基本概念

来源:互联网 发布:java ioc简书 编辑:程序博客网 时间:2024/06/08 12:57

一什么是流

流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。数据源可以是文件,内存或者网络等。同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。流的创建是为了更方便地处理数据的输入输出。流分为字节流和字符流。字节流也称为原始数据,需要用户读入后进行相应的编码转换。而字符流的实现是基于自动转换的,读取数据时会把数据按照JVM的默认编码自动转换成字符。字节流由InputStream和OutputStream处理,而字符流由Reader和Writer处理。Reader和Writer是Java后加入的处理类,出于让数据的处理更方便的目的。按操作数据分为:字节流和字符流.按流的方向分为:输入和输出流.

二.IO流的四大抽象类:

    ![这里写图片描述](http://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(以源文件为字符串的字符流方式)
0 0
原创粉丝点击