java中常用io流 BufferedInputStream和BufferedOutputStream

来源:互联网 发布:批图软件下载 编辑:程序博客网 时间:2024/04/29 01:31

       BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持markreset 方法的能力。在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。

  这是摘录自API文档中的

BufferedInputStream 



方法摘要 intavailable()
          返回可以从此输入流读取(或跳过)、且不受此输入流接下来的方法调用阻塞的估计字节数。 voidclose()
          关闭此输入流并释放与该流关联的所有系统资源。 voidmark(int readlimit)
          参见 InputStreammark 方法的常规协定。 booleanmarkSupported()
          测试此输入流是否支持 markreset 方法。 intread()
          参见 InputStreamread 方法的常规协定。 intread(byte[] b, int off, int len)
          从此字节输入流中给定偏移量处开始将各字节读取到指定的 byte 数组中。 voidreset()
          参见 InputStreamreset 方法的常规协定。 longskip(long n)
          参见 InputStreamskip 方法的常规协定。构造方法摘要BufferedInputStream(InputStream in)
          创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。BufferedInputStream(InputStream in, int size)
          创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
     BufferedOutputStream的跟BufferedInputStream基本类似,一个为写入一个为读出。 BufferedOutputStream带有一个刷新功能,与关闭一起使用。下面是一个简单的使用例子,通过对文件的写入和读出,实现了对文件的拷贝功能。

   另外在读取写入文件的时候要抛异常。
import java.io.*;public class Buffered1 {public static void main(String[] args){BufferedInputStream  bi = null;FileInputStream      fi = null;BufferedOutputStream bo = null;FileOutputStream     fo = null;try {fi = new FileInputStream("E:\\haha\\class1.class");fo = new FileOutputStream("E:\\class1.class");bi = new BufferedInputStream(fi);bo = new BufferedOutputStream(fo);int next = 0;while((next=bi.read())!=-1){bo.write(next);}} catch (FileNotFoundException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}finally{try {bi.close();bo.flush();bo.close();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}}



0 0