Java Stream流的概念

    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 出字节, 转换成数据

【转自】http://www.qqread.com/java/2008/08/w427980.html

图:输入流

图:输出流

 

 

对于我们常用的GBK中,英文是占用1个字节,中文是2个
对于UTF-8,英文是1个,中文是3个
对于Unicode,英文中文都是2个

Java的流操作分为字节流和字符流两种

你可能感兴趣的:(java,Stream,流)