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 出字节, 转换成数据
|
程序代码待续: