字节流和字符流区别(附例子)

字节流和字符流的用法几乎完成全一样,区别在于字节流和字符流所操作的数据单元不同,字节流操作的单元是数据单元是8位的字节,字符流操作的是数据单元为16位的字符。

 

区别

字节流一般用来处理图像、视频、音频、PPT、Word等类型的文件。字符流一般用于处理纯文本类型的文件
字节流本身没有缓冲区,缓冲字节流相对于字节流,效率提升非常高,字符流本身就带有缓冲区
可以用转换流来进行转换;

举个例子

把a.txt文件中的字节先转换char型数组,再转换成字符流,因为char型可能会溢出的问题。但是会以空格的形式打印出来,所以用trim()方法来去除左右空格

/**
 * @Author: Adminstrator
 * @Date:2021
 * @Description;转换流
 * InputStreamReader用于将字节输入流转换为字符输入流,
 * OutputStreamWriter用于将字节输出流转换为字符输出流
 * 使用转换流可以在一定程度上避免乱码,还可以指定输入输出所使用的字符集
 */
public class TestTransfer {
    public static void main(String[] args) throws IOException {
        FileInputStream fis=new FileInputStream("a.txt");
        InputStreamReader isr=new InputStreamReader(fis);
        char[] c=new char[fis.available()];
        isr.read(c);
        FileOutputStream fos=new FileOutputStream("b.txt",true);
        OutputStreamWriter osw=new OutputStreamWriter(fos);
        osw.write(new String(c).trim());
        osw.close();
        isr.close();
        fis.close();
    }
}
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值