Java核心API之缓冲字节流使用介绍
1、缓冲字节流之BufferedOutputStream的使用介绍 首先,小胆咣骜岱编要强调一点,那就是BufferedOutputStream是字节流中的处理流,主要是处理低级流的。 其次,操作字节输入流写入磁盘数据,增大写出次数降低了写出效率,这种情况可以使用缓冲输出流一次性批量写出若干数据减少写出次数来提高写出效率。 最后,缓冲输出流其内部维护一个缓冲区(其实际上是一个字节数组),进行写出操作时,先将数据存入缓冲区,缓冲区装满后,缓冲区把数据一次性全部写出。参考代码如下: /* * BufferedOutputStream有两个构造方法,分别是 * BufferedOutputStream(OutputStream out) * 该构造方法只需要传入一个输出流 * * BufferedOutputStream(OutputStream out,int size) * 该构造方法需要传入两个参数,第一个参数是输出流,第二个参数是缓冲区大小,即字节数组的大小 * */ @Test public void testBOS() throws Exception{ FileOutputStream fos = new FileOutputStream("test_buffered.txt"); //构造方法BufferedOutputStream(OutputStream out)的实例 BufferedOutputStream bos = new BufferedOutputStream(fos); //构造方法BufferedOutputStream(OutputStream out,int size)的实例 BufferedOutputStream bos2 = new BufferedOutputStream(fos,10); }分析:缓冲输出流BufferedOutputStream作为一种高级流(处理流),其构造参数往往是一个低级流。


4、缓冲输入流BufferedInputStream使用介绍 读取数据时以字节为单位读取数据,这样增加读写次数降低读写效率,可以通过提高一次性读取字节数量减少读写效率,提高读取效率。 BufferedInputStream与BufferedOutputStream一样,其内部维护一个缓冲区,即字节数组,该流会一次行读取多个字节存入缓冲区中,缓冲区装满后,逐一的将字节返回,直到缓冲区数据全部读取完毕。示例代码如下: /* * BufferedInputStream有两个构造方法,分别是 * BufferedInputStream(InputStream in) * 该构造方法只需要传入一个输入流 * * BufferedInputStream(InputStream in,int size) * 该构造方法需要传入两个参数,第一个参数是输入流,第二个参数是缓冲区大小,即字节数组的大小 * */ public void testBIS() throws Exception{ FileInputStream fis = new FileInputStream("test_buffered.txt"); //构造方法BufferedInputStream(InputStream in) BufferedInputStream bis = new BufferedInputStream(fis); int d = -1; while((d=bis.read())!=-1){ System.out.print((char)d); } bis.close(); }
