BufferedInputStream类 与 BufferedOutputStream类
1、BufferedInputStream类可以对任何的InputStream类进行带缓存区的包装以达到性能的优化。
BufferedInputStream类的两种构造方法:
(1)BufferedInputStream(InputStream in) //创建了一个带有32个字节的缓存流
(2)BufferedInputStream(InputStream in, int size) //创建一个按照指定的大小来创建缓存区
2、使用BufferedOutputStream输出信息和往OutputStream输出信息完全一样,只不过BufferedOutputStream有一个flush()方法用来将缓存区的数据强制输出完。
BufferedOutputStream类的两种构造方法同BufferedInputStream类。
注意:一个最优的缓存区的大小,取决于它所在的操作系统、可用的内存空间、硬件配置。
BufferedReader类 与 BufferedWriter类
BufferedReader类与BufferedWriter类分别继承Reader类与Writer类。这两个类同样具有内部缓存机制,并可以以行为单位进行输入输出。
在使用BufferedWriter类的Write()方法时,数据并没有立刻被写入至输出流中,而是首先进入缓存区中。如果想立刻将缓存区中的数据写入输出流中,一定要调用flush()方法。
BufferedWriter对象使用newLine()方法以单行的形式写入文件(写入一个行分隔符)。
BufferedReader 对象读取一个字符要使用 read() 方法。
从标准输入读取一个字符串需要使用 BufferedReader 的 readLine() 方法(读取一个文本行,将其返回为字符串,若无数据可读,则返回null)。
import java.util.*; import java.io.*; import java.math.*; public class Main{ public static void main(String[] args) throws IOException { String filename = "D:/hern.txt"; String[] str = {"这","是","H","e","r","n","!"}; File file = new File(filename); FileWriter writer = new FileWriter(file); BufferedWriter bufferwriter = new BufferedWriter(writer); for(int i = 0; i < str.length; i++) { bufferwriter.write(str[i]); bufferwriter.newLine(); } bufferwriter.close(); writer.close(); FileReader reader = new FileReader(file); BufferedReader bufferreader = new BufferedReader(reader); String s = null; int i = 0; while( (s = bufferreader.readLine()) != null ) { i++; System.out.print(s+" "); } bufferreader.close(); reader.close(); /*运行结果是: 这是 Hern 的! */ } }