ciya68

什么是流?

发布时间: 2022.07.23
阅读量: 33
分享:


1、流的定义:

      流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流。这个数据源可以是文件,内存,或是网络连接。类似的,当程序需要写入数据的时候,就会开启一个通向目的地的流。品牌网站建设,这时候你就可以想象数据好像在其中“流”动一样。

2、流的本质: 数据传输


3、流的划分:

(1)按照方向:

输入流: 从磁盘(存储介质)---------->当前程序(内存)的过程

基类: InputStream 、 Reader

输出流: 从当前程序(内存)---------->磁盘的过程(存储介质)

基类: OutputStrem 、 Writer

(2)按照操作单元

字节流 : 二进制表示的数据,一个字节8个bit

基类: InputStream 、 OutputStream

字符流 : 将数据以字符形式表示,例如‘a’ ‘b’ 1、2、3

基类: Reader 、 Writer

(3)按照角色划分:

节点流(介质流):低级流,连接程序和储存介质的流

处理流(高级流):和节点流直接相连的流,

 image.png


4、字节流、字符流的区别:

字节: 存储的是0101

字符: 存储的字符,

(1) 读写单元不同:

字节流以字节(8 bit) 为单位

字符流以字符为单位,

(2)处理对象不同

字节流可操作所有类型的文件(视频、图片、音乐…)

字符流只能操作字符类型的文件,

(3)处理效率不同

字节流效率高,

字符流效率低,因为要涉及到编码解码

(4) 可移植性

字节流高,与平台无关

字符流低,


5、字节和字符的相互转换 (乱码问题)

原因分析:

字节数组容量太小,最后几个字节包含了一个字符的部分字节。

开始的指针不在某个字符的开始字节上。

解码、译码的码表不匹配

image.png

码表:

ASCII码 :一个字符的七位表示 ,对应的字节都是整数,0-xxxxxxx

ISO-8899-1 :拉丁码表,以一个字节的8为表示,可以表示整数和负数,(最高位表示符号)

GBK :中文码表,用两个字节表示,2个字节中,第一个字节最高位为1,第二个字节的最高位为0;

Unicode :国际标准码:无论什么文字,都是两个字节

UTF-8 :基于Unicode,一个字节表示存储信息,每个字节头加入了编码信息

编码类:Charset


分享到微信朋友圈 ×

Copyright © 2016 广州思洋文化传播有限公司,保留所有权利。 粤ICP备09033321号 Copyright © 2016 ciya. Inc. All rights reserved