[二十一]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 和 ...
随机推荐
- Python算术运算
一.算术运算1.四则运算1+(100-20)/4+5*22.乘方运算2**103.求摸运算7%5 4.取整运算 7//5 = 1 5.绝对值函数 abs(-100) 6.导入数学函数后才能执行类似 ...
- 使用PIA查找组件的PeopleSoft导航
导航到企业组件>查找对象导航. 使用组件名称 使用页面名称 使用辅助页面名称 使用内容参考名称 只需输入对象名称,然后单击“搜索”即可.在这个例子中.我们知道组件名称即'PRCSDEFN',我们 ...
- .Net Core 部署 CentOs7+Nginx
先爆图 由于是初学者,部署出来这个界面也不容易,此前第一步弄了个这个出来 动态的没问题,然后静态资源死活就是不出来,弄了两个小时没有结果,带着遗憾睡了个觉 试验1: server { listen ; ...
- 使用Ant Build时提示错误: 编码GBK的不可映射字符
这个build.xml是由eclipse neon 2016.6生成的 我的情况是,所有文件都使用了UTF-8编码,build.xml第一行也好好写着UTF-8,但build时仍然有乱码,并且提示失败 ...
- python中的单向循环链表实现
引子 所谓单向循环链表,不过是在单向链表的基础上,如响尾蛇般将其首尾相连,也因此有诸多类似之处与务必留心之点.尤其是可能涉及到头尾节点的操作,不可疏忽. 对于诸多操所必须的遍历,这时的条件是什么?又应 ...
- Redis sentinel 哨兵模式
一.sentinel介绍 Sentinel作用: 1):Master状态检测 2):如果Master异常,则会进行Master-Slave切换,将其中一个Slave作为Master,将之前的Maste ...
- VS2017Release+x64失败,LNK1104,无法打开文件"msvcprt.lib"
采用VS2017+Qt5.10联合开发环境建立开发,将Qt的库包含到VS中使用VS2017的Debug+x64模式调试程序,通过并出现对应的EXE应用程序! 但是转换到Release+x64模式出现问 ...
- NFS 系统搭建 - 成功
NFS是Network File System的缩写,即文件系统.客户端通过挂载的方式将NFS服务器端共享的数据目录挂载到本地目录下. 工作流程 1.由程序在NFS客户端发起存取文件的请求,客户端本地 ...
- 删除 id 列表 存进数据库
当图片写的传id的时候 用着方法存进数据库
- [文章汇总]ASP.NET Core框架揭秘[最近更新:2018/10/31]
之前一段时间都在个人公众号账号“大内老A”发布关于ASP.NET Core的系列文章,很多人留言希望能够同步到这里,所以在这里 对这些文章做一个汇总,以便于PC端阅读.如果说微软官方文档主要关于ASP ...






