java Io流基本概念

一什么是流

流是一个抽象的概念。当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(以源文件为字符串的字符流方式)
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值