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, int
size)
根据参数指定的引用和缓冲区大小来构造``对象
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
}
}