缓冲字节流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的主要内容,如果未能解决你的问题,请参考以下文章