缓存是io的一种性能优化,缓存流为io流增加了内存缓存区,有了缓存区使得在流上执行skip(),mark()和reset()方法都成为可能
BufferedInputStream与bufferedOutputStream类
BufferedIputStreaam类可以对所有InputStream类进行带缓存区的包装以达到性能的优化,BufferedInputStream类有两个构造方法:
BufferedInputStream(InputStream in)
BufferedInputStream(InputStream in,int size)
第一种形式的构造方法创建了一个32字节的缓存流
第二种形式的构造方法按指定的大小来创建缓存区,一个最优的缓存区的大小,取决于它所在的操作系统可用的内存空间以及机器配置
使用BufferedOutputStream或OutputStream输出信息完全一样,只不过BufferedOutputStream有一个flush()方法用来将缓存区的数据强制输出完BufferedOutputStream类也有两个构造方法和BufferedInputStream一致
BufferedReader与BufferedWriter类
BufferedReader类与BufferedWriter类分别继承Reader与Writer类,这两个类同样具有内部缓存机制,并可以以行为单位进行输入输出
BufferedReader类常用的方法如下
read()方法:读取单个字符
readLine:读取一个文本行,并将其返回为字符串若无字符串可读,则返回null
BufferedWriter类中的方法都返回void,常用方法如下
Writer(String s,int off,int len)方法:写入字符串的某一部分
flush()方法:刷新该流的缓存
newLine()方法:写入一个行分隔符
在使用BufferedWriter类的Write()方法时,数据并没有立刻被写入至输出流,而是首先进入缓存区中,如果想立刻将缓存区中的数据写入输出流,一定要调用flush()方法