IO流
    |--字节流
            |--字节输入流
                InputStream                              ------抽象类 
                    int read():一次读取一个字节
                    int read(byte[] bys):一次读取一个字节数组

                    |--FileInputStream                   ------extends InputStream
                    |--BufferedInputStream               ------extends FilterInputStream  ------extends InputStream
                    |--ByteArrayInputStream              ------extends InputStream
                    |--StringBufferInputStream           ------extends InputStream



            |--字节输出流
                OutputStream                             ------抽象类 
                    void write(int by):一次写一个字节
                    void write(byte[] bys,int index,int len):一次写一个字节数组的一部分

                    |--FileOutputStream                  ------extends OutputStream
                    |--BufferedOutputStream              ------extends FilterOutputStream  ------extends OutputStream
                    |--ByteArrayOutputStream             ------extends OutputStream

该类定义为缓冲区类(高效类)
一、BufferedOutputStream:
该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

构造方法:

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

二、BufferedInputStream:
BufferedInputStream 为另一个输入流添加一些功能,即缓冲输入以及支持 mark 和 reset 方法的能力。在创建 BufferedInputStream 时,会创建一个内部缓冲区数组。在读取或跳过流中的字节时,可根据需要从包含的输入流再次填充该内部缓冲区,一次填充多个字节。mark 操作记录输入流中的某个点,reset 操作使得在从包含的输入流中获取新字节之前,再次读取自最后一次 mark 操作后读取的所有字节

构造方法:

  • BufferedOutputStream(OutputStream out) 创建一个新的缓冲输出流,以将数据写入指定的底层输出流。
  • BufferedOutputStream(OutputStream out, int size) 创建一个新的缓冲输出流,以将具有指定缓冲区大小的数据写入指定的底层输出流。
        //fos.txt:111111111111111111111111
        System.out.println("-------------写入--------------");
    BufferedInputStream bis=new BufferedInputStream(new FileInputStream("fos.txt"));

    BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream("fos1.txt"));
    byte[] bys=new byte[1024];
    int len=0;
    while((len=bis.read(bys))!=-1){
        bos.write(bys,0,len);
    }
    bos.close();
    bis.close();
    System.out.println("-------------读取--------------");
    BufferedInputStream bis1=new BufferedInputStream(new FileInputStream("fos1.txt"));
    byte[] bys1=new byte[1024];
    while((len=bis1.read(bys1)) !=-1){
        System.out.println(new String(bys1,0,len));
    }
输出:
-------------写入--------------
-------------读取--------------
111111111111111111111111
posted on 2017-04-05 17:02  2637282556  阅读(150)  评论(0编辑  收藏  举报