赞
踩
[一]写在前面
简单总结一下分别用(一直混淆的)字节流or字符流读写文件。
[二]字节流
2.1 字节流介绍
程序中的输入输出都是以流的形式保存的(输入流or输出流),流中保存的实际上全都是字节(一个字节等于一个Byte占8个bit)文件。Java提供了OutputStream、InputStream两个专门操作字节流的类。知识补充1:
计算机能存储的唯一东西就是 bytes,为了在计算机中存储东西,我们首先得将其编码(encode),例如将其转化为 bytes。
比如:要想保存音乐(以字节形式保存),我们首先得用 MP3, WAV 等将其编码;要想保存图片,我们首先得用 PNG, JPEG 等将其编码;要想保存文本,我们首先得用 ASCII, UTF-8 等将其编码.
知识补充2:
Unicode 是字符集,不是字符编码。Unicode 把全世界的字符都搜集并且编号了,但是没有规定具体的编码规则。编码规则有 UTF-8、GBK等。
2.2 字节流使用场景总结
字节流适合所有类型文件的数据传输,因为字节(Byte)是电脑中表示信息含义的最小单位(通常情况下一个ACSII码就是一个字节的空间来存放)。
如果是音频文件、图片、歌曲,就用字节流好,如果是关系到中文(文本)的,用字符流好。
[三]字符流
3.1 字符流介绍
字符流按字符(一个字符占两个字节)读数据:一次读两个字节,返回了这两个字节所对应的字符的int型数值(编码)。写入文件时把这两个字节的内容解码成这个字符在Unicode码下对应的二进制数据写入。即把原始文件中的二进制数据以字符形式读出,再将字符以二进制形式写入,所以得到的文件以字符方式存储。字符流只能处理字符或者字符串。
3.2 字符流使用场景
字符流只能够处理纯文本(中文)数据,其他类型数据
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。