[二十一]JavaIO之BufferedReader 与 BufferedWriter
功能简介
其实本质还是缓冲二字
他们内部都有一个缓冲区,就是一个字符数组
BufferedReader 会尽可能多的将数据读取到自己的缓冲区,然后提供的read方法从缓冲区读取
BufferedWriter 会先将数据写入到自己的内部缓冲区,从而写入的效率将会大大提升,然后批量的将数据实际写入
|
BufferedReader BufferedWriter 也是装饰器模式 不过他是简化版的装饰器模式 没有抽象的装饰器角色 BufferedReader 和 BufferedWriter 既充当了抽象的装饰器角色,又充当了装饰器实体角色 从下面的声明以及内部变量能看出来一点端倪(不是说 是你还有你 就一定是装饰器,还是要根据下面的业务逻辑的) 是你还有你 而且,他的确是装饰器模式,下面会简单介绍 |
![]() |
构造方法
关键成员变量![]() |
首先: BufferedReader 需要 Reader 作为参数 BufferedWriter 需要 Writer 作为参数 其次: 可选的设置缓冲区的大小,不设置则使用默认值 所以, BufferedReader 和 BufferedWriter 各有两个构造方法
|
BufferedReader 其他方法
read |
提供了两个版本的read方法 |
int read()
读取单个字符
int read(char[] cbuf, int off, int len)
将字符读入数组的某一部分,写入len个 到cbuf 中的off偏移量处
|
之所以说BufferedReader是装饰器模式不仅仅是"是你还有你" read内部,实际上使用的是fill()用来读取真正的数据到缓冲区内 fill 里面用了 Reader in ![]() |
支持标记 |
markSupported 返回true
mark
reset
|
String readLine() 读取一个文本行 通过下列字符之一即可认为某行已终止:换行 ('\n')、回车 ('\r') 或回车后直接跟着换行 |
lines方法 jdk8 中新增的方法 返回一个由 BufferedReader中的line组成的Stream |
![]() |
BufferedReader也例行提供了
skip
ready
close
|
BufferedWriter 其他方法
write |
void write(char[] cbuf, int off, int len)
写入字符数组的某一部分
void write(int c)
写入单个字符。
void write(String s, int off, int len)
写入字符串的某一部分
|
public void newLine()
throws IOException
写入一个行分隔符 行分隔符字符串由系统属性 line.separator 定义,并且不一定是单个新行 ('\n') 符 |
close 与 flush 既然是缓冲写字符 所以必然要有有效的刷新操作,内部通过out来进行刷新 close方法会将缓冲区的数据全部刷新,然后out置空 |
总结
[二十一]JavaIO之BufferedReader 与 BufferedWriter的更多相关文章
- java基础知识回顾之javaIO类---BufferedReader和BufferedWriter
使用了装饰设计模式:此类的设计是为了提高流操作数据的效率.思想就是定义容器将数据进行临时存储,对于缓冲区对象,其实就是将这个容器进行了分装,并提供了更高效的操作方法. BufferReader: pa ...
- Java基础---Java---IO流-----BufferedReader、BufferedWriter、缓冲区、装饰设计模式及和继承的区别
IO流 IO流用来处理设备之间的数据传输 java对数据的操作是过流的方式 流按操作数据分为两种:字节流与字符流 流按流向分为:输入流,输出流. IO流常用基类 字节流的抽象基类:InputStrea ...
- 节点流和处理流(BufferedReader和BufferedWriter,BufferedInputStream和BufferedOutputStream,ObjectlnputStream和objectOutputStream)
一.基本介绍: 1.节点流可以从一个特定的数据源读写数据,如FileReader. FileWriter 如图:字节流是直接对数据源(文件,数组之类存放数据的地方)进行操作 2.处理流(也叫包装流)是 ...
- Java-IO流之BufferedReader 和BufferedWriter的使用和原理
BufferedReader和BufferedWriter出现的目的是为了对FileReader以及FileWriter的读写操作进行增强,而怎么增强呢,原理类似于使用StringBuilder,是把 ...
- Java IO(十八) BufferedReader 和 BufferedWriter
Java IO(十八) BufferedReader 和 BufferedWriter 一.介绍 BufferedReader 和 BufferedWriter 是字符缓冲流,分别继承自 Reader ...
- 无废话ExtJs 入门教程二十一[继承:Extend]
无废话ExtJs 入门教程二十一[继承:Extend] extjs技术交流,欢迎加群(201926085) 在开发中,我们在使用视图组件时,经常要设置宽度,高度,标题等属性.而这些属性可以通过“继承” ...
- BufferedReader与BufferedWriter读写中文乱码问题
正常读写英文时用""""没问题 FileReader fre = new FileReader("E:\\TEST\\readText.txt&quo ...
- Bootstrap <基础二十一>徽章(Badges)
Bootstrap 徽章(Badges).徽章与标签相似,主要的区别在于徽章的边角更加圆滑. 徽章(Badges)主要用于突出显示新的或未读的项.如需使用徽章,只需要把 <span class= ...
- 【圣诞特献】Web 前端开发精华文章推荐【系列二十一】
<Web 前端开发精华文章推荐>2013年第九期(总第二十一期)和大家见面了.梦想天空博客关注 前端开发 技术,分享各种增强网站用户体验的 jQuery 插件,展示前沿的 HTML5 和 ...
随机推荐
- sql server 关于日期格式转换查询备注
select GETDATE()--2016-01-08 16:15:05.787select convert(varchar,getdate(),11)--16/01/08select conver ...
- C# 后台通过网络地址访问百度地图取回当前在地图上的经纬度,并将取回的复杂Json格式字符串反序列化(Newtonsoft.Json)
直接上代码:解释都在代码中 ak 要自己去百度地图申请. 其中申请ak的时候,有个属性render直接填*就行. namespace HampWebControl 是我的空间命名! namespace ...
- vue-cli+mock.js+axios模拟前后台数据交互
最近工作不是很忙,自己做了一个vue的移动端的小项目,涉及到后台数据的时候,网上查阅了一些资料,因为是自己写的项目没有后台只能自己模拟数据,刚开始就自己写了一些静态数据后来觉得尽量模拟真实的比较好些, ...
- Vue(二十八)el-cascader 动态加载 - 省市区组件
1.后台接口为点击加载下一级 ,传省市区id <template> <el-cascader v-model="selectedOptions" placehol ...
- pygame学习
http://eyehere.net/2011/python-pygame-novice-professional-3/ http://www.pygame.org/docs/ref/event.ht ...
- js 面向对象的三大特性:封装,继承、多态
一:什么是封装? 封装的定义:就是对象内部的变化对外界是透明的,不可见的. 封装的场景: 在写项目的过程中,有时候不同页面,会有相同的功能,我们还需要每个页面都写一遍吗?额,,,,其实也可以写的,只不 ...
- ava怎样将"1413863429"字符串转换成datetime格式
.....一般来说应该是一个 毫秒数 String str ="1413863429"; Long timeLong = Long.parseLong(str); SimpleDa ...
- Trie树(字典树)的介绍及Java实现
简介 Trie树,又称为前缀树或字典树,是一种有序树,用于保存关联数组,其中的键通常是字符串.与二叉查找树不同,键不是直接保存在节点中,而是由节点在树中的位置决定.一个节点的所有子孙都有相同的前缀,也 ...
- 体验一把做黑客的感觉-IPC$入侵之远程控制
前言 一看你就是看标题进来的,我可不是标题党啊,大家往下看吧,本文章主要介绍了利用IPC共享漏洞上传并执行木马. 基础知识 一.什么是IPC 进程间通信(IPC,Inter-Process Commu ...
- [Swift]LeetCode632. 最小区间 | Smallest Range
You have k lists of sorted integers in ascending order. Find the smallest range that includes at lea ...