17.4.6 BufferedInputStream类(重点)
(1)基本概念
java.io.BufferedInputStream类主要用于描述缓冲输入流。
(2)常用的方法
方法声明 功能介绍BufferedInputStream(InputStream in)根据参数指定的引用构造对象BufferedInputStream(InputStream in, int size)根据参数指定的引用和缓冲区大小构造对象int read()读取单个字节int read(byte[] b, int offff, int len)读取``len``个字节int read(byte[] b)读取``b.length``个字节void close()关闭流对象并释放有关的资源
17.4.5 BufferedOutputStream类(重点)
(1)基本概念
java.io.BufffferedOutputStream类主要用于描述缓冲输出流,此时不用为写入的每个字节调用底层
系统。
(2)常用的方法
方法声明 功能介绍BufferedOutputStream(OutputStream out)根据参数指定的引用来构造对象BufffferedOutputStream(OutputStream out, intsize)根据参数指定的引用和缓冲区大小来构造``对象void write(int b)写入单个字节void write(byte[] b, int off, int len)写入字节数组中的一部分数据void write(byte[] b)写入参数指定的整个字节数组void flflush()刷新流void close()关闭流对象并释放有关的资源
缓冲流文件拷贝的实现代码
在日常开发工作中,主要使用缓冲流进行文件的拷贝。
_
import java.io.*;public class BufferedByteCopyTest {public static void main(String[] args) {// 获取当前系统时间距离1970年1月1日0时0分0秒的毫秒数long g1 = System.currentTimeMillis();BufferedInputStream bis = null;BufferedOutputStream bos = null;try {// 1.创建BufferedInputStream类型的对象与d:/02_IO流的框架结构.mp4文件关联bis = new BufferedInputStream(new FileInputStream("d:/02_IO流的框架结构.mp4"));// 2.创建BufferedOuputStream类型的对象与d:/IO流的框架结构.mp4文件关联bos = new BufferedOutputStream(new FileOutputStream("d:/IO流的框架结构.mp4"));// 3.不断地从输入流中读取数据并写入到输出流中System.out.println("正在玩命地拷贝...");byte[] bArr = new byte[1024];int res = 0;while ((res = bis.read(bArr)) != -1) {bos.write(bArr, 0, res);}System.out.println("拷贝文件成功!");} catch (IOException e) {e.printStackTrace();} finally {// 4.关闭流对象并释放有关的资源if (null != bos) {try {bos.close();} catch (IOException e) {e.printStackTrace();}}if (null != bis) {try {bis.close();} catch (IOException e) {e.printStackTrace();}}}long g2 = System.currentTimeMillis();System.out.println("使用缓冲区拷贝视频文件消耗的时间为:" + (g2-g1)); // 44}}
