【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
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的流操作分为字节流和字符流两种
来源:oschina
链接:https://my.oschina.net/u/96412/blog/9535