理解Java的IO 流

按照流的流向来分,可以分为输入流和输出流:

  • 输入流:只能从中读取数据,而不能向其中写数据.
  • 输出流:只能向其写出数据,而不能从中读取数据

.

对于上面的左图来说,数据从内存到硬盘,通常我们称为输出流,也就是说,这里的输出,都是从程序运行所在的内存角度来划分的。对于右边的这张图来说,数据从服务器通过网路流向客户端,Server的内存负责将数据输出到网络里,因此Server端的程序使用的是输出流,Client端的内存负责从网路里读取数据,因此Client端的程序应该使用输入流.

Java中的输入流 主要由InputStream 和Reader作为基类,而输出流主要由OutputStream和Writer作为基类。

 

字节流和字符流 
字节流和字符流所操作的数据单元不同:字节流操作的最小数据单元是8位的字节 (也是byte类型数据),而字符流操作的最小数据单元是16位的字符  (java使用16位的Unicode编码级作为编码方式)

字节流主要由InputStream 和OutputStream作为基类,而字符流主要由Reader和Writer作为基类。

节点流和处理流

节点流:可以从一个特定的IO设备(如磁盘、网路)读/写数据的流,成为节点流,节点流通常也被成为低级流;使用节点流进行输入输出时 ,程序直接连接到实际的数据源,和实际的输入、输出节点连接.下图显示了节点流的示意图:

处理流:对一个已存在的流进行连接或封装,通过封装后的流来实现数据的读写功能.处理流也成为高级流.使用处理流的一个明显好处就是:只要使用相同的处理流,程序就可以采用完全相同的输入、输出代码来访问不同的数据源,随着处理流所包装节点流的改变,程序实际所访问的数据源也相应发生改变.下图示范了处理流的过程.

 

以上是关于IO流的一些基本情况的说明,理解上面的知识,对继续学习IO流,起着至关重要的作用,不然你到后面会晕的.

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值