JavaSE: BufferedOutputStream类 和 BufferedInputStream类
BufferedOutputStream类 (重点)
<1> 基本概念
java.io.BufferedOutputStream类:用于描述缓冲输出流,此时不用为写入的每个字节调用底层系统。
<2> 常用的方法
方法声明 功能介绍
BufferedOutputStream (OutputStream out) 根据参数指定的引用,构造对象
BufferedOutputStream (OutputStream out, int size) 根据参数指定的引用和缓冲区大小来构造对象
void write(int b) 写入单个字节
void write(byte[] b, int off, int len) 写入字节数组中的一部分数据
void write(byte[] b) 写入参数指定的整个字节数组
void flush() 刷新流
void close() 关闭流对象,并释放有关的资源
BufferedInputStream类 (重点)
<1> 基本概念
java.io.BufferedInputStream类主要用于描述缓冲输入流
<2> 常用的方法
方法声明 功能介绍
BufferedInputStream(InputStream in) 根据参数指定的引用,构造对象
BufferedInputStream(InputStream in, int size) 根据参数指定的引用 和 缓冲区大小 构造对象
int read() 读取单个字节
int read(byte[] b, int off, int len) 读取len个字节
int read(byte[] b) 读取b.length个字节
void close() 关闭流对象并释放有关的资源
代码示例:
class BufferedByteCopyTest {
main(){
// 获取当前系统时间距离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:/02_IO流的框架结构.mp4 "));
// 3. 不断地从输入流中,读取数据,并写入到输出流中
byte[] bArr = new byte[1024];
int res = 0;
while ( (res = bis.read(bArr) != -1 ) ) {
bos.write (bArr,0,res);
}
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
}