java.io.BufferedOutputStream
java.io.BufferedOutputStream
继承关系:
*FilterOutputStream extends OutputStream
*BufferedOutputStream extends FilterOutputStream
构造方法:
*BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
*BufferedOutputStream(OutputStream out, int size) 创建一个新的缓冲输出流,以便以指定的缓冲区大小将数据写入指定的底层输出流。
参数
*OutputStream out:字节输出流,通过传递一个FileOutputStream ,缓冲流会给FileOutputStream添加缓冲区提高FileOutputStream的写入效率
*int size:指定缓冲流内部缓冲区的大小,不指定即为默认值
使用步骤
*1.创建FileOutputStream对象,构造方法中指定输入目的地的。
*2.创建BufferedOutputStream对象,构造方法中传递FileOutputStream对象,提高FileOutputStream写入效率
*3.使用BufferedOutputStream中的write方法,把数据写入到缓冲区中
*4.使用BufferedOutputStream中的flush方法,把内部缓冲区的数据刷新到文件中
*5.释放资源(会先调用flush方法)
public class BufferedOSText1 {public static void main(String[] args) throws IOException {BOSText1();}private static void BOSText1() throws IOException {OutputStream fos= new FileOutputStream("BufferedOSText1.txt",true);BufferedOutputStream bos= new BufferedOutputStream(fos);bos.write("这是使用缓冲字节输出流输出的数据\n".getBytes());bos.flush(); //只需要释放BufferedOutputStream bos.close(); } }
java.io.BufferedInputStream
java.io.BufferedInputStream
继承关系:
*FilterInputStream extends InputStream
*BufferedInputStream extends FilterInputStream
BufferedInputStream:字节缓冲输入流
构造方法:
*BufferedInputStream(InputStream in) 创建一个 BufferedInputStream并保存其参数,输入流 in ,供以后使用。
*BufferedInputStream(InputStream in, int size) 创建 BufferedInputStream具有指定缓冲区大小,并保存其参数,输入流 in ,供以后使用。
参数:
*InputStream in:字节输入流,通过传递FileInputStream对象字节缓冲输入流会给FileInputStream对象添加缓冲区,提高FileInputStream的读取速度
使用步骤:
*1.创建FileInputStream对象,并绑定文件读取源
*2.创建BufferedInputStream对象,将FileInputStream对象作为参数传入,提高FileInputStream的写入效率
*3.使用BufferedInputStream中的read方法,读取文件
*4.释放资源
public class BufferedISText1 {public static void main(String[] args) throws IOException {BOSText1();}private static void BOSText1() throws IOException {FileInputStream fis = new FileInputStream("BufferedISText1.txt");BufferedInputStream bis = new BufferedInputStream(fis);//用len记录每次读取到的数据,len为-1表示读取到了文件末尾
// int len=0;
// while((len=bis.read())!=-1) {
// System.out.print((char)len);
// } //使用byte数组读取,一次读取多个数据int len=0;//存储每次读取的个数byte[] bytes = new byte[1024];//存储每次读取的数据while((len=bis.read(bytes))!=-1) {System.out.println(new String(bytes,0,len));}//释放资源,只需要关闭缓冲流bis.close();}
}