BufferedInputStream:用于读取文本文件内容,它继承于FilterInputStream。
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):将指定的字节写入此缓冲的输出流。
*/
继承于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数组中。
*
*
*/
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!