java 缓冲流 刷新_java 缓冲流 Buffer
发布日期:2021-06-24 01:38:43 浏览次数:4 分类:技术文章

本文共 3351 字,大约阅读时间需要 11 分钟。

缓冲流 Buffer :设置缓冲区加快执行效率

子类:

(一)BufferedInputStream : 缓冲输入字节流 ,目的:提高读取文件的效率

注意: BufferedInputStream 他是没有读写数据的功能

内部实现 : 你面维护了一个8字节的byte数组。

使用步骤:

1.找到一个目标文件.

2.建立通道 new FileInputStream(" ");

3.创建一个缓冲字节输入流  new BufferedInputStream(FileInputStream);

4.读取数据 read();

5.关闭资源 close();

(二)BufferedOutputStream :缓冲输出字节流    内部维护了一个 8k的字节数组

作用: 提高文件的输出的效率,可以提供其他的方法。

使用:

1.找目标

2.建立通道 FileOutputStream

3.创建一个缓冲字节输出流

4.写数据,不会写入到磁盘中。  如果数组中的数据已经满了,才会自动将数据写入到磁盘中。

5.将数据写入到磁盘 : 调用flush(),或者关闭资源。

6.关闭资源。

(三)BuffredRead 缓冲输入字符流。

有一个扩展的功能:readLine(); // 可以一次读一行文字。

(四)BufferedWriter: 缓冲输出字符流

内部提供一个8192长度的字符数组作为这样一个缓冲区。

BufferedWriter作用 :提高写入的效率,拓展FileWriter的功能。

newLine();  //换行写入数据

简单的字节缓冲流案例

1 importjava.io.BufferedInputStream;2 importjava.io.BufferedOutputStream;3 importjava.io.File;4 importjava.io.FileInputStream;5 importjava.io.FileOutputStream;6 importjava.io.IOException;7

8 public classbuffered {9

10 /**

11 *@paramargs12 *@throwsIOException13 */

14 public static void main(String[] args) throwsIOException {15 //TODO Auto-generated method stub16 //bufInTest();

17 bufOutTest();18 }19

20 //(1)BufferedInputStream 的使用

21 public static void bufInTest() throwsIOException{22 //1.找到目标

23 File file = new File("D:\\a.txt");24 //2.创建通道

25 FileInputStream fis = newFileInputStream(file);26

27 //**3.创建一个缓冲输入字节流******

28 BufferedInputStream bfis = newBufferedInputStream(fis);29

30 //4.开始写入数据

31 int content = 0; //一次只会取一个字节

32 while ((content= bfis.read())!= -1) { //还是一个一个的读取 问什么可以提高效率呢?

33 System.out.print((char)content);34 }35 //5.关闭通道

36 bfis.close();37 }38

39 //(2)BufferedOutputStream 的使用

40 public static void bufOutTest() throwsIOException{41

42 //1.找目标

43 File file = new File("D:\\b.txt");44 //2.创建通道

45 FileOutputStream fos = newFileOutputStream(file);46

47 //3.创建缓冲流

48 BufferedOutputStream bfos = newBufferedOutputStream(fos);49

50 //4.创建写入文件的数据

51 String string = "good good study day day up";52

53 //5.写数据, 到这一步只是将数据保存到内存中字节数组中。

54 bfos.write(string.getBytes());55

56 //6.再刷新 将数据写入到磁盘中57 //bfos.flush();58

59 //7.关闭资源

60 bfos.close();//内部会实现flush();

61 }62 }

简单的字符缓冲流案例

1 importjava.io.BufferedReader;2 importjava.io.BufferedWriter;3 importjava.io.File;4 importjava.io.FileReader;5 importjava.io.FileWriter;6 importjava.io.IOException;7

8 public classfileReader {9

10 public static void main(String[] args) throwsIOException {11 testBufferedWriter();12 testBufferedRead();13 }14 //(1)缓冲输出字符流的使用

15 public static void testBufferedWriter() throwsIOException{16

17 //1.建立一个通道,指定一个路径

18 FileWriter fiw = new FileWriter("D:\\a.txt",true);19

20 //2.创建缓冲流

21 BufferedWriter bfw = newBufferedWriter(fiw);22

23 //让数据换行显示

24 bfw.newLine(); //换行写入数据25

26 //3.开始写入数据

27 bfw.write("上课不要吃东西");28

29 //4.关闭资源

30 bfw.close(); //关闭资源之前会做一个刷新操作。调用flush()方法。

31 }32

33 //(2)缓冲输入字符流的使用

34 public static void testBufferedRead() throwsIOException{35

36 //1.创建通道并且指定路径

37 FileReader fir = new FileReader("D:\\b.txt");38

39 //2.创建缓冲流

40 BufferedReader bfr = newBufferedReader(fir);41

42 //3.1、开始读取数据(一次读取一个字节)

43 int content = 0;44 while ((content = bfr.read()) != -1) {45

46 System.out.print((char)content);47 }48

49 //3.2、readLine()扩展功能,读取一行数据

50 String string1 =bfr.readLine();51 System.out.println(string1);52

53 //一次读取一行数据(返回字符串),效率更高

54 String string = null;55 while ((string = bfr.readLine()) != null) {56 System.out.println(string);57 }58

59 //4.关闭

60 bfr.close();61 }62 }

转载地址:https://blog.csdn.net/weixin_29306261/article/details/114604071 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:java配置logback_logback配置和使用
下一篇:java怎么改变数据类型_java基础系列—数据类型

发表评论

最新留言

初次前来,多多关照!
[***.217.46.12]2024年03月04日 21时59分55秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

spring java配置_Spring Java配置要点 2019-04-21
共享内存 java_java - Java客户端-服务器编程:客户端之间的共享内存 - 堆栈内存溢出... 2019-04-21
java布局管理器空布局_Java图形化界面设计——布局管理器之null布局(空布局)... 2019-04-21
java gas station_LeetCode – 774. Minimize Max Distance to Gas Station 2019-04-21
java项目无法加载到tomcat_eclipse+tomcat添加项目进来无法启动tomcat 2019-04-21
后缀树建立 java_实用算法实现-第 8 篇后缀树和后缀数组 [2 最长公共子串] 2019-04-21
java网络编程期末试题_java网络编程面试题【其中一小部分】 2019-04-21
estore java_estore2 - WEB源码|JSP源码/Java|源代码 - 源码中国 2019-04-21
java如何做表单校验_微信小程序实现表单校验功能 2019-04-21
matlab dwt2(),MATLAB小波变换指令及其功能介绍(超级有用) 2019-04-21
php sequelize,egg.js整合数据库ORM框架Sequelize 2019-04-21
php同时打开2个数据库,thinkphp3.2同时连接两个数据库的简单方法 2019-04-21
centos 开发php扩展,centos 安装php扩展redis 2019-04-21
php+跑buth,php 中函数获取可变参数的方法, 这个语法有点像 golang 语言中的 2019-04-21
cms 单点登录 php,Yii2 中实现单点登录的方法 2019-04-21
oracle自己运行,创建Oracle自动执行Job 2019-04-21
oracle报错00020,oracle启动 ORA-00020: maximum number of processes (%s) exceeded错误 2019-04-21
chmod 赋权所有_chmod 权限 命令详细用法 2019-04-21
html代码翻译_[译]您知道 HTML 的键盘标签吗? 2019-04-21
html抽奖代码_JavaScript高手之路:封装抽奖效果 2019-04-21