浅谈我对IO流的了解 - 字符流缓冲区
来源:互联网 发布:淘宝店铺头像在哪里换 编辑:程序博客网 时间:2024/05/01 08:45
字符流下,有一个缓冲流 BufferedReader , BufferedWriter
缓冲区的出现,大大的提高了对数据的读写效率——
--------------------------------------------------------------------------------------------------------------------------------
为什么这么说呢 ?
因为以前文件的读取 ,写入,往往是一个字符的读取和写入,效率低。
加入了缓冲区后,我可以一次性的写入一行数据,和读取一行数据,效率高。
举个饮水机实例体现下:
平常,你要喝水,你会拿个杯子,去饮水机出接水,等装满了一杯,你就喝下了这杯水,说了一个字,爽。
杯子就是这个缓冲区,杯子起到了缓冲的作用。
试想下你要是没有杯子,你想喝水,只能自己去饮水机处的出水口,用自己的口接水来喝,喝的不爽不说,
还辛苦,对不对 ~ 而且看的还特别逗,当然这个是后话了。
-----------------------------------------------------------------------------------------------------------------------------------------------
既然缓冲区那么好,不多说,整个缓冲区示例演示:
import java.io.*;class BufferedDemo{public static void main(String[] args) throws IOException{bufferedWriter();bufferedReader();}public static void bufferedReader() throws IOException{FileReader fr = new FileReader("test.txt");// 建立缓冲区的前提,需要有对象(就好比你没有饮水机,你叫我拿个杯子去哪里装水)BufferedReader br = new BufferedReader(fr); //建立缓冲区,并且指定对象 //拿到杯子,并告知是去饮水机装水的String value = null; //临时存储数据用的容器。while((value = br.readLine())!=null) // 通过缓冲区的 readLine 方法,可以取到一行数据。{System.out.println(value);// 打印取到的数据。}br.close(); // 关闭缓冲流对象,对应的文件流对象也会关闭, // 因为缓冲区的底层实际上就是在调用文件流的 close 方法。}public static void bufferedWriter() throws IOException {FileWriter fw = new FileWriter("test.txt");BufferedWriter bw = new BufferedWriter(fw); //建立缓冲区,并且指定对象for(int i = 1; i<6; i++){bw.write("通过缓冲区写入第"+i+"条数据"); //通过缓冲区 write 方法写入数据bw.newLine(); /* 写入缓冲区特有的方法,该方法是写入一个换行符。 咦,这个我自己就可以呀,\r\n嘛,确实如此,不过\r\n是window下识别的标记。 linux下是\n, 拿到linux下运行就会多一个\r,显然违背了JAVA的跨平台的优势。 虽然我们获取系统的参数来判断运行那个,可是JAVA已经帮我们做了, 它封装到 newLine方法里,我调用newLine方法即可,下次换行使用newLine方法可以跨平台 */bw.flush(); // 即时刷新数据}bw.close(); // 关闭缓冲流对象,对应的文件流对象也会关闭,}}
什么是装饰模式:
当想要对已有对象进行功能的增强时,
可以定义类,将已有对象传入,基于已有功能,并提供加强功能。
这种自定义类,称为 装饰模式。
------------------------------------------------------------------------------------------------------------------------
装饰类 和 继承 的区别
1. 装饰类比继承灵活,避免了继承体系的臃肿
2. 降低了类与类之间的关系
3. 装饰类是基于已有对象的一种提升,在原有基础上提供更强的功能
4. 装饰类和被装饰类,通常都属于同一个体系中
5. 装饰类和被装饰类同属父类或接口
-------------------------------------------------------------------------------------------------------------------------
请查看BufferedReader 类 和 BufferedWriter 类,这里就不提供示例了。
- 浅谈我对IO流的了解 - 字符流缓冲区
- 浅谈我对IO流的了解 - 字符流
- Java IO 字符流 缓冲区
- 浅谈我对进制间转换的了解
- 浅谈我对JAVA字符串的了解
- 浅谈我对JAVA线程的了解
- 浅谈我对反射的了解
- 浅谈我对File类的了解
- 黑马程序员—IO流字符读取流的缓冲区
- 黑马程序员-day19-IO流(字符流的缓冲区)
- 黑马程序员--IO流(字符流的缓冲区)
- java IO操作(二)---字符流的缓冲区
- 黑马程序员—IO流字符写入流的缓冲区
- java io 学习之三 字符流的缓冲区
- 黑马程序员_java的IO流(对第十九课字符缓冲区及装饰设计模式的总结)
- IO流--字符流缓冲区(BufferedReader,BufferedWriter)
- IO流:概述、字符流、缓冲区
- java IO 二(字符流缓冲区)
- 文件编程(2)底层文件IO操作
- 使用MFC的CFile文件类和CArchive串行化类进行二进制文件读写操作
- ios tableview cell 侧滑删除
- 每天一个linux命令(36):diff 命令
- 开启博客之旅
- 浅谈我对IO流的了解 - 字符流缓冲区
- 解决easyui 中显示Date类型数据为[object Object],json中格式化日期
- easyUI 动态添加窗体
- linux apt-get
- 二叉树
- ubuntu12.04删除文件或文件夹
- 第17周 指针引出奇数因子
- git 小结
- springMVC上传文件