1、字节流缓冲区

package com.example;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;public class MyFileByteData {public static void main (String [] args) throws IOException {//创建一个字节流,用于读取当前目录下的source文件夹中的压缩文件InputStream in=new FileInputStream("/home/lumeng/practise_lum/uml_tmp_file.rar");//创建一个文件字节输出流,用于将读取的数据写入test目录OutputStream out= new FileOutputStream("/home/lumeng/practise_lum/test/uml_tmp_file.rar");byte [] buff=new byte[1024];  //定义一个字节数组,作为缓冲区int len; //定义一个int类型的变量len,记住每次读取的一个字节long begintime=System.currentTimeMillis();//获取拷贝文件前的系统时间while ((len=in.read(buff))!=-1){ //读取一个字节并判断是不是读到文件结尾out.write(buff,0,len);//从第一个字节开始,向文件写入len个字节}long endtime=System.currentTimeMillis();//获取文件拷贝结束时的系统时间System.out.println("拷贝文件所消耗的时间是:"+((endtime-begintime)/1000)+"秒");in.close();out.close();}
}

在拷贝的过程中,使用while循环语句,逐渐实现字节文件的拷贝,每循环一次,就从文件读取若干字节填充字节数组,并通过len记住读入数组的字节数,然后从数组的第一个字节开始,将len字节依次写入文件。循环往复,当len的值为-1时,说明已经读到了文件的末尾,循环结束,整个拷贝过程结束。我们可以看出这种操作比单纯字节留拷贝快很多。

2、字节缓冲流

package com.example;import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;public class MyBuffStream {public static void main (String [] args) throws IOException {//创建一个带缓冲区的输入流BufferedInputStream bis=new BufferedInputStream(new FileInputStream("/home/lumeng/practise_lum/test.txt"));//创建一个带缓冲区的输出流BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("/home/lumeng/practise_lum/test_out.txt"));int len;while((len=bis.read())!=-1){bos.write(len);}bis.close();bos.close();}
}

创建BufferedInputStream和BufferedOutputStream两个缓冲流对象,这两个流都对应了一个大小为8192的字节数组,当调用read()或者write()方法读写数据时,首先将读写的数据存入定义好的字节流数组,然后将字节数组的数据一次性的读写到文件中。

参考文档:
Java基础入门 传智博客高教产品研发部 

本人郑重声明,本博客所著文章、图片版权归权利人持有,本博只做学习交流分享所用,不做任何商业用途。访问者可將本博提供的內容或服务用于个人学习、研究或欣赏,不得用于商业使用。同時,访问者应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人的合法权利;如果用于商业用途,须征得相关权利人的书面授权。若以上文章、图片的原作者不愿意在此展示內容,请及时通知在下,將及时予以刪除。

字节流--字节流缓冲区、字节缓冲流相关推荐

  1. 字节流(InputStream和OutputStream),字节流读写文件,字节流的缓冲区,字节缓冲流

    字节流 抽象类InputStream和OutputStream是字节流的顶级父类 所有的字节输入流都继承自InputStream,所有的输出流都继承子OutputStream InputStream的 ...

  2. 字节流(IO流)概述、字节流(写入/输出)数据(3种)和换行、追加写入、异常处理办法、字节缓冲流、字节流复制图片视频案例

    目录 IO流概述和分类 字节流写入数据(OutputStream) FileOutputStream 字节流写数据的3种方式 字节流写入数据的两个小问题 字节流写数据如何换行 字节流如何实现追加写入 ...

  3. Java入门学习第十七天——字节流读写文件、字节缓冲流拷贝文件

    字节流读写文件 字节流拷贝文件-按单个字节读写 FileInputStream:普通的字节输入流,用来读取数据的 构造方法: ​ public FileInputStream(String pathn ...

  4. java 字节缓冲_Java字节缓冲流原理与用法详解

    本文实例讲述了Java字节缓冲流原理与用法.分享给大家供大家参考,具体如下: 一 介绍 BufferInputStresm和BufferOutputStream 这两个流类为IO提供了带缓冲区的操作, ...

  5. Java18-day09【字节缓冲流、字符流、编码表、字符串与字符流中的编码解码问题、字符流读写数据的方式、字符缓冲流、IO流小结】

    视频+资料(工程源码.笔记)[链接:https://pan.baidu.com/s/1MdFNUADVSFf-lVw3SJRvtg   提取码:zjxs] Java基础--学习笔记(零起点打开java ...

  6. 2※、封装流(包装流派)、缓冲流【字节缓冲流、字符缓冲流】-->【字节缓冲流、字符缓冲流】 、字符集、转换流以及打印流

    封装流(包装流) ※缓冲流 [字节缓冲流.字符缓冲流] 缓冲流[字节流]文件复制以及BufferedOutputStream的源码查看 缓冲流[字符流] [读取操作.写出操作] 练习:文本排序:请将文 ...

  7. Java字节缓冲流/字符流/IO流小结

    文章目录 字节缓冲流 字节缓冲流构造方法 字符流 为什么会出现字符流 编码表 字符串中的编码解码问题 字符流中的编码解码问题 字符流写数据的5种方式 字符流读数据的2种方式 字符缓冲流 字符缓冲流特有 ...

  8. Java IO流之缓冲流:字节缓冲流BufferedOutputStream BufferedInputStream、字符缓冲流BufferedWriter、BufferedReader

    文章目录 缓冲流 1.字节缓冲流 构造方法 2.字符缓冲流 构造方法 练习:文章段落排序 缓冲流 缓冲流在基础的字节流和字符流上做功能的增强,能够高效读写的缓冲流,能够转换编码的转换流,能够持久化存储 ...

  9. Java练习题:字节缓冲流性能分析、 文档顺序恢复

    字节缓冲流性能分析 分别使用四种字节缓冲流进行文件复制测试其速度 这里准备了一个较大的视频文件130MB的视频文件进行测试 import com.wukong.io.BufferedInputStre ...

最新文章

  1. 创业路上的这点事之 从无到有,从有到......
  2. 程序员加班文化是怎么来的?
  3. sh: react-scripts: command not found after running npm start
  4. java创建一个图片_Java 创建一个简单的验证码图片
  5. H5页面适配所有iPhone和安卓机型的六个技巧
  6. wamp php5.6 mysql5.6,WampServer 3.0.6 多语言版 集成apache2.4.23 mysql5.7.14 php5.6.25-7.0.10 穿墙书店...
  7. python与jupyter关系,Ipython,jupyter和kernels是什么关系?
  8. ASP.NET MVC 后台中 设置 js提示
  9. slam十四讲第十讲:找不到 g2o_viewer
  10. 麻省理工18年春软件构造课程阅读07“设计规格说明”
  11. 数据库周刊55丨2021年1月数据库排行榜出炉;openGauss荣获“2020年度国产数据库”称号;易鲸捷喜获“金鼎奖”;搭建Mysql MGR高可用集群;openGauss主备部署;AWR分析办法
  12. 净利大涨13倍,“缺芯”后的士兰微要如何不“躺平”?
  13. 《钱塘湖春行》-----白居易
  14. QoS 基础: 什么是QoS, 我真的需要吗?
  15. Linux 平台上的软件包管理
  16. csv转excel在线工具
  17. 华为新员工入职180天详细培训计划
  18. 图注意力网络(GAT)
  19. GPS卫星计时周期清零,GPS周期翻转,GPS周期清零
  20. DPark安装及相关资料整理

热门文章

  1. 人工智能微信小程序之识别图片上的文字并提取出来(附源码)
  2. Apache Maven 学习教程
  3. java cxf spring_CXF整合Spring开发WebService
  4. 要在HTML页面显示如下数字图案,上机实验 7
  5. js中的innerHTML的作用
  6. Java Kafka 消费积压监控
  7. 遇到一个不合格的实习生,怎么办?
  8. 华为设备三层交换实现不同网络之间的通信
  9. 京东产发奔赴港股上市,分拆上市或成互联网大厂的共同选择?
  10. 获得火焰杯软件测试比赛8000元奖金,感谢霍格沃兹测试开发学社