java-i/o架构体系

对程序语言设计者来说,设计一个令人满意的I/O(输入输出)系统,是件极艰巨的任务。 –Thinking in java

在java.io包中有60多个类(流)。从功能上分为输入流和输出流,从流结构上分为字节流和字符流(字符流底层同样是以字节为基础),基于字符只是提供了一些功能上的包装。

两种方式的最底层类:
Byte Stream: InputStream OutputStream
Character Stream: Reader Writer

对于阻塞的io读数据的逻辑为:
open a stream
while more information
read information
close the stream

写数据的逻辑
open a stream
while more information
write information
close the stream

一个io一定是读的状态或者是写的状态,但是nio可以同时存在。

节点流:直接和文件打交道的,从特定的地方读写的流类,例如磁盘或一块内存区域。
过滤流:使用节点流作为输入或输出。过滤流是使用一个已经存在的输入流或输出流连接创建的。

如图:
这里写图片描述

这里写图片描述

整个io流的连接:

这里写图片描述

这里写图片描述

这里写图片描述

Java的I/O库提供了一个管道链接的机制,可以将一个流与另一个流首尾相接,形成一个流管道的链接。这种机制实际上是一种被称作为Decorator(装饰)设计模式的应用。
通过流的链接,可以动态的增加流的功能,而这种功能的增加是通过组合一些流的基本功能而动态获取的。

详细的api使用见装饰器模式讲解:

http://blog.csdn.net/u011262847/article/details/76165959

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值