[原创]Java Stream流的概念

[原创]Java Stream流的概念

java流的概念

        刚开始接触流的概念,很迷惑,搞了很久终于搞懂,时隔许久,又迷惑了,现做一小结,拿来与大家分享,亦作为我Blog的首篇。

        1. Java的流分为 Inputstream 和 OutputStream;

        2. 流(stream)的概念源于UNIX中管道(pipe)的概念。在UNIX中,管道是一条不间断的字节流,用来实现程序或进程间的通信,或读写外围设备、外部文件等;

        3. Java中,流,简单的说就是字节(byte),可以把它看作是很多很多字节(byte) 汇在一起形成的东西,起个名字就叫流,像水滴形成河流一样,呵呵,个人的解释;

        4. 一个流,必有源端和目的端,也即必须有数据(Data)和字节(byte)两个部分,数据(Data):可以是计算机内存的某些区域,也可以是磁盘文件,甚至可以是Internet上的某个URL;字节就不用说了 byte;

        5. 流的源端和目的端可简单地看成是字节的生产者和消费者,由数据变成字节,是生产字节、生产流;由字节恢复成数据,是读取字节、消费流;

        6. 流的方向很重要,根据流的方向,流可分为两类:输入流和输出流。流的方向是最难理解和最容易搞糊涂的,具体如下: 

DataOutputStream:
     解释:
    是对象Data(数据): out出 字节stream, 生产出流, 把数据(Data)变成字节(byte), 把数据写到内存里,
    是以程序中的数据Data为参照对象,直接翻译成英文即为其含义: "(参照物)数据: 输出流", 是生成字节,所以是写

*参照物*    -->   Stream    数据转换成生成字节(byte)      Out    
    源   端       -->    生成流    生产字节

    把数据 write 成字节保存到内存中

DataInputStream:
    解释:
    是对象Data(应该是程序): in进 字节stream,变成数据, 消费流, 读取字节(byte)转换恢复成数据(Data),
    是以程序中的数据Data为参照对象,直接翻译成英文即为其含义: "(参照物)数据: 输入(进)流", 是读取字节,所以是读

(参照物)   <--  Stream    读取字节(byte)转换成数据       In 
    目的端     <--  读取流    消费字节

    从内存中 read 出字节, 转换成数据

程序代码待续:

你可能感兴趣的:([原创]Java Stream流的概念)