当前位置: 首页 > news >正文

(JAVA)-缓冲流

缓冲流能高效的读取数据

缓冲流底层自带了8192的缓冲区提高性能,他在原有的流上进行了包装,加上了缓冲效果

原理:

读入时首先会将内存中缓冲区大小的数据读入缓冲区中,接着下次读取直接从缓冲区中读取数据,当缓冲区中数据读取完再从内存中读取数据存到缓冲区。写出时同样有个缓冲区进行类似操作,因为内存中读取速度比从硬盘中读取速度更快,达到加速效果

BufferedInputStream,BufferedInputStream:字节输入,输出缓存流

创建缓冲流对象

我们首先来看构造方法的形参

第一个构造方法的形参是一个基本流,第二个构造方法的第二个参数是设置的缓冲区的大小

输出

        BufferedInputStream bi=new BufferedInputStream(new FileInputStream("D:\\code\\javaee\\bufferedStream\\a.txt"));BufferedOutputStream bo=new BufferedOutputStream(new FileOutputStream("D:\\code\\javaee\\bufferedStream\\b.txt"));
byte[]bytes=new byte[1024];   
int len;while((len=bi.read(bytes))!=-1){bo.write(bytes,0,len);}bo.close();bi.close();

我们可以看到缓冲流使用方法跟普通的字节缓冲流没什么区别

 BufferedReader,Bufferedwriter

字符缓冲流跟普通的字符流区别不大,因为字符流就自带缓冲区,但是字符缓冲流中有两个特有的方法我们可以学习一下

1.输入流中readLine方法

读取一行数据,遇到换行停止,如果读到末尾了,会返回null

2.输出流中newLine方法

之前我们讲过不同操作系统换行符不一样

这个方法可以进行跨平台的换行

        BufferedWriter bi= new BufferedWriter(new FileWriter("D:\\code\\javaee\\bufferedStream\\a.txt"));BufferedReader bo= new BufferedReader(new FileReader("D:\\code\\javaee\\bufferedStream\\b.txt"));String str;while((str=bo.readLine())!=null){bi.write(str);bi.newLine();bi.newLine();}bo.close();bi.close();}
}

                

http://www.lryc.cn/news/256577.html

相关文章:

  • Autosar UDS-CAN诊断开发02-1(CAN诊断帧格式类型详解、CANFD诊断帧格式类型详解、15765-2(CANTP层)的意义)
  • swing快速入门(三)
  • Swagger PHP Thinkphp 接口文档
  • 12.9每日一题(备战蓝桥杯循环结构)
  • 与时代共进退
  • Python 云服务器应用,Https,定时重启
  • pytorch 笔记:dist 和 cdist
  • Java的List中的各种浅拷贝和深拷贝问题
  • 20231207_最新已测_Centos7.4安装nginx1.24.0_安装详细步骤---Linux工作笔记066
  • 前端知识笔记(二十六)———React如何像Vue一样将css和js写在同一文件
  • Photoshop Circular Text
  • 深入解析Spring Boot中的注解@PathVariable、@RequestParam、@RequestBody的正确使用
  • Qt Location中加载地图对象
  • 4-Docker命令之docker ps
  • 你在地铁上修过bug吗?
  • CPU、MCU、MPU、DSP、FPGA各是什么?有什么区别?
  • SpringBoot之logback 在Linux系统上启动的时候,设置日志按日期分割并设置指定时间自动清除日志
  • OpenHarmony北向-让更广泛的应用开发者更容易参与
  • 数据结构之归并排序及排序总结
  • 仿windows12网盘,私有云盘部署教程,支持多种网盘
  • 深度学习 时间序列回归学习笔记
  • 【postgresql】ERROR: INSERT has more expressions than target columns
  • Android Kotlin语言下的文件存储
  • Verilog 入门(八)(验证)
  • vue3 vue-router 导航守卫 (五)
  • Git命令---查看远程仓库
  • 12.8作业
  • 算法:有效的括号(入栈出栈)
  • vxworks常用的指令归纳
  • 线性回归实战