JAVA自学笔记,带缓冲的输入/输出流

缓冲是I/O中的一种性能优化。缓冲流为I/O流增加了内存缓冲区。有了缓冲区。使得在流上执行skip,mark和reset方法都成为可能。

BufferedIputStream类与BufferedOutputStream类

BufferedInputStream类可以对所有InputStream类进行带缓冲区的包装以达到性能的优化。其构造方法有两种。
1,BufferedInputStream(InputStream in):创建一个带有32个字节的缓冲输入流。
2,BufferedInputStream(InputStream in,int size):按vzhiding的大小来创建缓冲输入流。
一个最优的缓冲区的大小,取决于它所在的操作系统,可用的内存空间以及机器配置。
从构造方法可以看出,BufferedInputStream对象位于InputStream类对象之前,字节数据读取文件的过程如下图。在这里插入图片描述
使用BufferedOutputStream输出信息和用OutputStream输出信息完全一致,只不过BufferedOutputStream用一个flush()方法将缓冲区的数据强制输出玩。BufferedOutputStream类也有两个构造方法。
1,BufferedOutputStream(OutputStream in):创建一个有32个字节的缓冲输出流
2,BufferedOutputStream(OutputStream in,int size):以指定的大小来创建缓冲输出流。
BufferedOutputStream写入文件过程如下图。

在这里插入图片描述
flush()方法就是用于即使在缓冲区没有满的情况下,也将蝗虫去的内容强制写入外设,习惯上成这个过程为刷新。flush()方法只对使用缓冲区的OutputStream类的子类有效。当调用cloase()方法时,系统在关闭流之前,也会将缓冲区中的信息刷新到磁盘文件中。
在这里插入图片描述
在这里插入图片描述

BufferedReader类与BufferedWriter类

BufferedReader类与BufferedWriter类分别继承Reader类与Writer类,这两个类同样具有内部缓冲机制,并可以以行为单位进行输入/输出。
BufferedReader类读取文件的过程如下图。
在这里插入图片描述
BufferedWriter类写入文件的过程如下图。
在这里插入图片描述
BufferedReader类的常用方法如下表:
在这里插入图片描述
BufferedWriter类的常用方法如下表:
在这里插入图片描述
在使用BufferedWriter类的write方法时,数据并没有立刻被写入至输出流,而是首先进入缓冲区中。如果想立刻将缓冲区中的数据写入输出流,一定要调用flush方法。
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值