云海顽石 发表于 2009-2-20 11:18:07

Java

刚开始接触流的概念,很迷惑,搞了很久终于搞懂,时隔许久,又迷惑了,现做一小结,拿来与大家分享,亦作为我Blog的首篇。
    1. Java的流分为 Inputstream 和 OutputStream;
    2. 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等;
    3. Java中,流,简单的说就是字节(byte),可以把它看作是很多很多字节(byte) 汇在一起形成的东西,起个名字就叫流,像水滴形成河流一样,呵呵,个人形象的解释;
    4. 一个流,必有源端和目的端,也即必须有数据(Data)和字节(byte)两个部分,数据(Data):可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL;字节就不用说了 byte;
    5. 流的源端和目的端可简单地看成是字节的生产者和消费者,由数据变成字节,是生产字节、生产流,是Data(数据)Out出流(Stream);由字节恢复成数据,是读取字节、消费流;
    6. 流的方向很重要,根据流的方向,流可分为两类:输入流和输出流。流的方向是最难理解和最容易搞糊涂的,具体如下:
    DataOutputStream:解释:是对象Data: out出 字节stream, 生产出流, 把数据(Data)变成字节(byte), 把数据写到内存里,是以程序中的数据Data为参照对象,直接翻译成英文即为其含义: "(参照物)数据: 输出流", 是生成字节,所以是写
    *参照物*    ——>   Stream    数据转换成生成字节(byte)      Out源   端       ——>    生成流    生产字节
    把数据 write 成字节保存到内存中
    DataInputStream:解释:是对象Data(应该是程序): in进 字节stream变成数据, 消费流, 读取字节(byte)转换恢复成数据(Data),是以程序中的数据Data为参照对象,直接翻译成英文即为其含义: "(参照物)数据: 输入(进)流", 是读取字节,所以是读
    (参照物)   <——Stream    读取字节(byte)转换成数据       In目的端   <——读取流    消费字节
    从内存中 read 出字节, 转换成数据
页: [1]
查看完整版本: Java