千锋教育-做有情怀、有良心、有品质的职业教育机构

400-811-9990
手机站
千锋教育

千锋学习站 | 随时随地免费学

千锋教育

扫一扫进入千锋手机站

领取全套视频
千锋教育

关注千锋学习站小程序
随时随地免费学习课程

上海
  • 北京
  • 郑州
  • 武汉
  • 成都
  • 西安
  • 沈阳
  • 广州
  • 南京
  • 深圳
  • 大连
  • 青岛
  • 杭州
  • 重庆
当前位置:青岛千锋IT培训  >  技术干货  >  字符流与字节流的区别是什么?

字符流与字节流的区别是什么?

来源:千锋教育
发布人:xqq
时间: 2023-10-11 03:48:33

一、字符流与字节流的区别

1. 读写单位不同

字节流以字节(8bit)为单位,字符流以字符为单位,根据码表映射字符,一次可能读多个字节。

字节流默认不使用缓冲区;字符流使用缓冲区。字节流通常用于处理二进制数据,实际上它可以处理任意类型的数据,但它不支持直接写入或读取Unicode码元;字符流通常处理文本数据,它支持写入及读取Unicode码元。

2. 处理对象不同

字节流能处理所有类型的数据(如图片、avi等),而字符流只能处理字符类型的数据。

3. 处理方式不同

Java的字节流
InputStream是所有字节输入流的祖先

OutputStream是所有字节输出流的祖先。

Java的字符流
Reader是所有读取字符串输入流的祖先

writer是所有输出字符串的祖先。

延伸阅读:

二、字节流和字符流介绍

字节流

Java中的字节流处理的最基本单位为单个字节,它通常用来处理二进制数据。Java中最基本的两个字节流类是InputStream和OutputStream,它们分别代表了组基本的输入字节流和输出字节流。

字符流

Java中的字符流处理的最基本的单元是Unicode码元(大小2字节),它通常用来处理文本数据。所谓Unicode码元,也就是一个Unicode代码单元,范围是0x0000~0xFFFF。在以上范围内的每个数字都与一个字符相对应,Java中的String类型默认就把字符以Unicode规则编码而后存储在内存中。

然而与存储在内存中不同,存储在磁盘上的数据通常有着各种各样的编码方式。使用不同的编码方式,相同的字符会有不同的二进制表示。实际上字符流是这样工作的:

输出字符流:把要写入文件的字符序列(实际上是Unicode码元序列)转为指定编码方式下的字节序列,然后再写入到文件中;

输入字符流:把要读取的字节序列按指定编码方式解码为相应字符序列(实际上是Unicode码元序列从)从而可以存在内存中。

以上就是关于字节流和字符流的内容希望对大家有帮助。

声明:本站稿件版权均属千锋教育所有,未经许可不得擅自转载。

猜你喜欢LIKE

XFS 文件系统中soft limit 和 hard limit 有什么区别?

2023-10-11

搞c的和搞java的有啥区别?

2023-10-11

重载与重写有哪些区别?

2023-10-11

最新文章NEW

PaaS 和 SaaS 有什么区别?

2023-10-11

直接敲击加号键和按住shift敲加号键有什么区别?

2023-10-11

store与save有哪些区别?

2023-10-11

相关推荐HOT

更多>>

快速通道 更多>>

最新开班信息 更多>>

网友热搜 更多>>