缓冲字节流BufferedOutputStreamBufferedInputStream

Posted 刘Java

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了缓冲字节流BufferedOutputStreamBufferedInputStream相关的知识,希望对你有一定的参考价值。

详细介绍了Java IO中的缓冲字节流BufferedOutputStream、BufferedInputStream以及使用方式。

1 BufferedOutputStream缓冲区字节输出流

public class BufferedOutputStream
extends FilterOutputStream

特点:提供了缓冲区,缓冲区能够自动扩容,提高了写的效率。

1.1 构造器

public BufferedOutputStream(OutputStream out)

创建一个新的缓冲输出流,以将数据写入指定的底层输出流。out:底层输出流。

1.2 API方法

所有的方法都是继承和重写自父类FilterOutputStream的方法,没有提供新的方法。

void write(int b);
void write(byte[] b);
void write(byte[] b, int off, int len);
void flush();
void close();

2 BufferedInputStream缓冲区字节输入流

public class BufferedInputStream
extends FilterInputStream

特点:提供了缓冲区,缓冲区能够自动扩容,提高了读的效率。

2.1 构造器

public BufferedInputStream(InputStream in)

创建一个缓冲输入流并保存其参数,即输入流 in,以便从in读取数据。in:底层输入流。

2.2 API方法

所有的方法继承和重写了父类FilterInputStream方法,没有提供新的方法。

int read();  
int read(byte[] b); 
int read(byte[] b, int off, int len);
int available();   
void close();

3 案例

使用带有缓冲区的字节流,实现文件的copy。

/**
 * @author lx
 */
public class BufferedStreamCopy {

    public static void main(String[] args) throws IOException {
        BufferedInputStream bis = null;
        BufferedOutputStream bos = null;
        try {
            bis = new BufferedInputStream(new FileInputStream("C:\\\\Users\\\\lx\\\\Desktop\\\\test.wmv"));
            bos = new BufferedOutputStream(new FileOutputStream("C:\\\\Users\\\\lx\\\\Desktop\\\\test2.wmv"));
            byte[] by = new byte[1024];
            int i;
            while ((i = bis.read(by)) != -1) {
                bos.write(by, 0, i);
                bos.flush();
            }
        } catch (Exception e) {
            System.out.println(e.toString());
        } finally {
            if (bis != null) {
                bis.close();
            }
            if (bos != null) {
                bos.close();
            }
        }
    }

}

如有需要交流,或者文章有误,请直接留言。另外希望点赞、收藏、关注,我将不间断更新各种Java学习博客!

以上是关于缓冲字节流BufferedOutputStreamBufferedInputStream的主要内容,如果未能解决你的问题,请参考以下文章

字节流缓冲区BufferedInputStream原理之装饰模式

字节流复制文件和字节缓冲流复制文件的时间比较

文件的复制方式

IO流的总结

《文件与I/O流》第3节:字节流的使用

如何高效的使用IO流?字节流字符流缓冲流序列化对象流打印流全整理