IO流学习笔记(二)之BufferedWriter与BufferedReader及实例Demo
在之前的学习笔记(http://blog.csdn.net/megustas_jjc/article/details/72853059)中,FileWriter与FileReader的Demo使用的中转数据buf实际就是缓冲区,是由我们自己创建的。
缓冲区可以提高效率,Java对缓冲区进行了封装,封装成了对象,即读与写操作都进行了缓冲:
BufferedWriter
BufferedReader
缓冲区要结合流才可以使用
在流的基础上对流的功能进行了增强
为什么会提高效率(同数据库连接池,避免每次的创建连接和断开连接,直接创建一个容器,使用完放回即可):
常规的读一次写一次的方式,磁头需要进行不断的切换
缓冲的方式,每次读取一块便在内存中存储一块,一旦装满了或者没有数据可以继续读取了,就开始写操作
代码:设计优化(重构);性能优化(最常见的手段之一就是缓冲区)
public class BufferdeWriter extends Writer:
将文本写入字符输出流,缓冲各个字符,从而提供单个字符、雅思考试时间数组和字符串的高效写入
本质:用数组在缓冲存流中的数据,因此缓冲区在被创建时,必须要有被缓存的对象
BufferedWriter(Writer
out):创建一个使用默认大小输出缓冲区的缓冲字符输出流
BufferedWriter(Writer out,int
sz):创建一个使用给定大小输出缓冲区的缓冲字符输出流
close():关闭此流,但要先刷新它
flush():刷新该流的缓冲
newLine():写入一个分隔符,实际就是将System.getProperty(“line.separator”)进行了封装
write(char[] cbuf,int off,int len):写入字符数组的某一部分
write(char c):写入单个字符
write(String s,int off,int
len):写入字符串的某一部分
public BufferedReader extends Reader:
从字符输入流读取文本,缓冲各个字符,从而实现字符、数组和行(文本的行数通过回车符来进行判定)的高效读取
注意:缓冲区对象(例如BufferedWriter)操作的都是缓冲区中的内容,email的格式内容从外设到内存是由底层流对象完成的(例如Writer),具体将在如下介绍
read():读取单个字符
read(char[] cbuf,int off,int
len):将字符读入数组的某一部分
readLine():读取一个文本行,通过下列字符之一即可认为某行已终止,换行(‘\n’),回车(‘\r’)或回车后直接跟着换行
返回:包含该行内容的字符串,不包含任何终止符,如果已经到达流末尾,则返回null
bufr.read(buf)是建立缓冲区时调用的方法,因此虽然BufferedReader的read()方法是读取单个字符,但是也是从缓冲区读取,已经是高效方法了。
readLine()方法,在读到一个数据之后不进行操作,而是继续进行缓冲并判断结束标记,详细可以参加图示注释。
注:注释部分代码是逐个读取字符
IO流学习笔记(二)之BufferedWriter与BufferedReader及实例Demo的更多相关文章
- JAVA.IO流学习笔记
一.java.io 的描述 通过数据流.序列化和文件系统提供系统输入和输出.IO流用来处理设备之间的数据传输 二.流 流是一个很形象的概念,当程序需要读取数据的时候,就会开启一个通向数据源的流,这个数 ...
- IO流学习笔记(一)之FileWriter与FileReader
IO流用来处理设备之间的数据传输 Java对数据的操作是通过流的方式 Java用于操作流的对象都在IO包中 流按照操作数据分为两种:字节流和字符流 流按流向分为:输入流和输出流 输入流和输出流是相对于 ...
- IO流学习笔记
1.File类 文件和目录路径名的抽象表示形式. 4种构造方法 File(File parent, String child) File(File parent, String child) File ...
- 。。。IO流学习之二。。。
fileReader的用法: import static org.junit.Assert.*; import java.io.File; import java.io.FileNotFoundExc ...
- IO流总结笔记二
Reader |--InputStreamReader |--FileReader:专门用于处理文件的字符读取流对象 Writer |--OutputStreamWriter |--FileWri ...
- Java IO流学习总结二:File
Java File类的功能非常强大,利用java基本上可以对文件进行所有操作.首先来看File类的构造函数的源码 /** * Internal constructor for already-norm ...
- Java IO学习笔记二
Java IO学习笔记二 流的概念 在程序中所有的数据都是以流的方式进行传输或保存的,程序需要数据的时候要使用输入流读取数据,而当程序需要将一些数据保存起来的时候,就要使用输出流完成. 程序中的输入输 ...
- Java IO流学习总结四:缓冲流-BufferedReader、BufferedWriter
在上一篇文章中Java IO流学习总结三:缓冲流-BufferedInputStream.BufferedOutputStream介绍了缓冲流中的字节流,而这一篇着重介绍缓冲流中字符流Buffered ...
- Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer
作者:Grey 原文地址:Java IO学习笔记二:DirectByteBuffer与HeapByteBuffer ByteBuffer.allocate()与ByteBuffer.allocateD ...
随机推荐
- node溢出
在做项目的过程中,项目越来越大,后面导致项目无法正常启动,查了原因是因为node 溢出了. 先看看溢出时报的错 解决办法: increase-memory-limit插件 1.在package.js ...
- 【前端 · 面试 】HTTP 总结(十)—— HTTP 缓存应用
最近我在做前端面试题总结系列,感兴趣的朋友可以添加关注,欢迎指正.交流. 争取每个知识点能够多总结一些,至少要做到在面试时,针对每个知识点都可以侃起来,不至于哑火. 前言 通过前面几篇内容的学习,我们 ...
- C++利用模板在Windows上快速调用DLL函数
更新日志 --------- 2021/08/01 更新V2.2 增加 GetHmodule 函数 - 允许用户获取HMODULE以验证加载DLL是否成功. 2021/08/03 更新V2.3 增加 ...
- 虚拟机中桥接模式和NAT模式以及仅主机模式的区别
桥接模式和NAT模式 网络连接类型的选择,网络连接类型一共有桥接.NAT.仅主机和不联网四种. 桥接:选择桥接模式的话虚拟机和宿主机在网络上就是平级的关系,相当于连接在同一交换机上. NAT:NAT模 ...
- 身边好几个技术一般的程序员都面上了,阿里P7门槛降低?
经常在网上的论坛里看到讨论程序员的级别,尤其在跳槽类的信息里可以看到对标阿里P7,百度T6,腾讯3.1等字眼,似乎大厂的级别俨然可以成为业内的通用货币,类似于高考分数一样,哪一档就对应着什么样的待遇. ...
- 中高级Android大厂面试秘籍,为你保驾护航金三银四,直通大厂(上)
前言 当下,正面临着近几年来的最严重的互联网寒冬,听得最多的一句话便是:相见于江湖~.缩减HC.裁员不绝于耳,大家都是人心惶惶,年前如此,年后想必肯定又是一场更为惨烈的江湖厮杀.但博主始终相信,寒冬之 ...
- Crash course statistics
Crash course statistics 01什么是统计学 描述性统计(Descriptive statistics) 推理统计可以得出之外的,基于"样本"的推论统计学来估计 ...
- 第6篇-Java方法新栈帧的创建
在 第2篇-JVM虚拟机这样来调用Java主类的main()方法 介绍JavaCalls::call_helper()函数的实现时提到过如下一句代码: address entry_point = me ...
- ES6继承和ES5继承是完全一样的么?
继承方式 ES5 prototype 继承 通过原型链(构造函数 + [[prototype]])指向实现继承. (备注:后续__proto__我都会写成[[prototype]]这种形式) 子类的 ...
- 【笔记】求数据的对应主成分PCA(第一主成分)
求数据的第一主成分 (在notebook中) 将包加载好,再创建出一个虚拟的测试用例,生成的X有两个特征,特征一为0到100之间随机分布,共一百个样本,对于特征二,其和特征一有一个基本的线性关系(为什 ...