怎么使用字节缓冲流

IO流文本、视频的复制以及缓冲流的使用

缓冲流的作用:
缓冲流可以提高读取和写入的速度

创建缓冲流:
创建缓冲流之前需要先创建内层的流(节点流),对于字节缓冲流BufferedInputStream/BufferedOutputStream来说,内层流可以是FileInputStream/FileOutputStream(前后一一对应),创建的源码如下

//创建文件
File srcFile = new File("D:\\plm.jpg");
File destFIle = new File("D:\\plm3.jpg");
//创建节点流
FileInputStream fis = new FileInputStream(srcFile);
FileOutputStream fos = new FileOutputStream(destFIle);
//创建处理流(缓冲流)
BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos);

关闭字节缓冲流同时也关闭节点流:
关闭流的时候,关闭外层处理流的同时内层的节点流也会被自动关闭。缓冲流是一种处理流,是包在字节输入、输出流的外层的。关闭流的时候只需要关闭处理流就OK了

bos.close();
bis.close();

关于刷新缓冲区:
刷新缓冲区我们通常是手动调用BufferedOutputStream的.flush()方法。这个方法的作用就是把缓冲区中的数据写出去,也可以不调用这个方法,等待缓冲区满了之后自动刷新

bos.flush();

复制:
的时候如果是文件,可以用字节流和字符流,都是不会出现乱码的,因为整个都复制过去了,汉字也没有出现劈成两半的情况。但是对于非文本文件的复制就只能用字节流,不然会出问题。如果只是读取一部分的话,对于文本文件用字符进行读写,对于视频和图片就用字节流。

简单来记忆的话就是对于文本类型的文件使用字符流对于非文本类型的文件使用字节流。以前的博客里我讲到过,对于视频、图片等底层是二进制实现的文件用字节流,对于底层含有汉字的文本文件使用字符流(不会出现把一个汉字分成几瓣的情况)

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值