【Java】BufferedOutputStream与BufferedInputStream字节缓存输出流和字节缓存输入流的使用

理解:

BufferedInputStream:用于读取文本文件内容,它继承于FilterInputStream。

BufferedOutputStream:本身带有一个缓冲区,在写入数据时,先放到缓冲区中,实现缓冲的数据流。

BufferedOutputStream: 

是一个缓冲流,可以将你所想写入的内容先暂时放进缓冲区,然后一起写出,当然它的优点就是减少了对硬盘的读写次数,另外效

率高了

/**
 * 构造方法:

 *·BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,来将数据写入指定的底层输入流。

 *·BufferedOutputStream(OutputStream out,int size):创建一个新的缓冲输出流,来将具有指定缓冲区大小的数据写入指定的底层输出流。

 *常用方法:

 *·void flush():刷新此缓冲的输出流。

 *·void write(byte[] b,int off,int len):将指定byte数组中从偏移量off开始的len个字节写入此缓冲的输出流。

 *·void write(int b):将指定的字节写入此缓冲的输出流。

*/

BufferedInputStream:

继承于FilterInputStream,提供缓冲输入流功能。缓冲输入流相对于普通输入流的优势是,它提供了一个缓冲数组,每次调用read

方法的时候,它首先尝试从缓冲区里读取数据,若读取失败(缓冲区无可读数据),则选择从物理数据源(譬如文件)读取新数据

(这里会尝试尽可能读取多的字节)放入到缓冲区中,最后再将缓冲区中的内容部分或全部返回给用户.由于从缓冲区里读取数据远

比直接从物理数据源(譬如文件)读取速度快。

/**

 *构造方法:
 *·BufferedInputStream(InputStream in):创建一个BufferedInputStream并保存其参数,即输入流in,以便将来使用。

 *·BufferedInputStream(InputStream in,int size):创建一个具有指定缓冲区大小的BufferedInputStream并保存其参数,即输入流in,以便将来使用。

 *常用方法:

 *·int available():返回下一次对此输入流调用的方法不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。

 *·void close():关闭此输入流并释放与该流关联的所有系统资源。

 *·int read():从输入流中读取数据的下一个字节。

 *·int read(byte[] b,int off,int len):从此字节输入流中给定偏移量处开始将各字节读取到指定的byte数组中。
 * 
 *
 */

示例:利用BufferedOutputStream与BufferedInputStream字节缓存输出流和字节缓存输入流输入和获取文本:

package 流;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;

import org.junit.Test;

public class Buffered {
	/**
	 * 构造方法:

	 *·BufferedOutputStream(OutputStream out):创建一个新的缓冲输出流,来将数据写入指定的底层输入流。

	 *·BufferedOutputStream(OutputStream out,int size):创建一个新的缓冲输出流,来将具有指定缓冲区大小的数据写入指定的底层输出流。

	 *常用方法:

	 *·void flush():刷新此缓冲的输出流。

	 *·void write(byte[] b,int off,int len):将指定byte数组中从偏移量off开始的len个字节写入此缓冲的输出流。

	 *·void write(int b):将指定的字节写入此缓冲的输出流。

	*/
	@Test
    public void test4()throws Exception{
        BufferedWriter b = new BufferedWriter (
                                new FileWriter ("D:/流/a.txt")
                            );
        b.write ("Hello World!");
        b.flush ();
        b.close ();
    }
	/**

	 *构造方法:
	 *·BufferedInputStream(InputStream in):创建一个BufferedInputStream并保存其参数,即输入流in,以便将来使用。

	 *·BufferedInputStream(InputStream in,int size):创建一个具有指定缓冲区大小的BufferedInputStream并保存其参数,即输入流in,以便将来使用。

	 *常用方法:

	 *·int available():返回下一次对此输入流调用的方法不受阻塞地从此输入流读取(或跳过)的估计剩余字节数。

	 *·void close():关闭此输入流并释放与该流关联的所有系统资源。

	 *·int read():从输入流中读取数据的下一个字节。

	 *·int read(byte[] b,int off,int len):从此字节输入流中给定偏移量处开始将各字节读取到指定的byte数组中。
	 * 
	 *
	 */
    @Test
    public void test5()throws Exception{
        BufferedReader r = new BufferedReader (
                                new FileReader ("D:/流/a.txt")
                            );
        String mesg = r.readLine ();

            System.out.println(mesg);

        r.close ();

    }

}

 

输出:

Hello World!

 

 

 

 

你可能感兴趣的:(Java札记)