java 缓冲流 刷新_java 缓冲流 Buffer

缓冲流 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 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值