字符流与字节流的区别

字符流与字节流的区别

1.字符流

字符流自动允许我们逐字符读/写数据,有助于执行16位Unicode的输入和输出;它是以reader和writer结尾的。Java中字符流最常见的类是FileReader和FileWriter。在内部,FileReader使用FileInputStream;同样,FileWrite使用FileOutputStream。

2.字节流

它逐字节处理数据,适用于处理二进制文件等原始数据。字节流操作最常用的类是FileInputStream和FileOutputStream。FileInputStream有助于从源读取,而FileOutputStream有助于写入目标。

3.两者的区别

1、定义不同;

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

2、读写单位不同;

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

3、处理方式不同;

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

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

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

4、缓冲区不同;

字节流读取的数据不经过缓存区。而字符流经过。

5、编码方式不同。字节流默认不使用缓冲区,而字符流使用缓冲区。字节流采用ASCII编码,字符流采用unicode编码。

在这里插入图片描述

结论:

1.如果一个程序频繁对一个资源进行IO操作,效率会非常低。此时,通过缓冲区,先把需要操作的数据暂时放入内存中,以后直接从内存中读取数据,则可以避免多次的IO操作,提高效率

2.真正存储和传输数据时都是以字节为单位的,字符只是存在与内存当中的,所以,字节流适用范围更为宽广

3.只要是处理纯文本数据,就优先考虑使用字符流。 除此之外都使用字节流。

  • 3
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值