当前位置:K88软件开发文章中心编程语言JavaJava01 → 文章内容

带缓冲的字节流读写数据-BufferedInputStream、BufferedOutputStream

减小字体 增大字体 作者:佚名  来源:网上搜集  发布时间:2019-1-4 7:53:49

-->

该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。

摘自CSDN:
? ?BufferedInputStream是套在某个其他的InputStream外,起着缓存的功能,用来改善里面那个InputStream的性能(如果可能的话),它自己不能脱离里面那个单独存在。FileInputStream是读取一个文件来作InputStream。所以你可以把BufferedInputStream套在FileInputStream外,来改善FileInputStream的性能。
FileInputStream与BufferedInputStream区别:
? ?FileInputStream是字节流,BufferedInputStream是字节缓冲流,使用BufferedInputStream读资源比FileInputStream读取资源的效率高(BufferedInputStream的read方法会读取尽可能多的字节),且FileInputStream对象的read方法会出现阻塞;

[t]继承关系[/t]

java.lang.Object
? ? ?java.io.InputStream
? ? ? ? ??java.io.FilterInputStream
? ? ? ?? ? ? ? ??java.io.BufferedInputStream? ? ? ?? ? ? ? ??BufferedOutputStream

[t]构造方法[/t]

构造方法摘要
BufferedInputStream(InputStream in)?创建一个 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用。
BufferedInputStream(InputStream in, int size)?创建具有指定缓冲区大小的 BufferedInputStream 并保存其参数,即输入流 in,以便将来使用

[t]CopyFileStream.java [/t]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package cn.k88;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;

public class CopyFileStream {
public static void main(String args[]) {

try {
FileInputStream readfile = new FileInputStream("E:/火影忍者.mp4");
BufferedInputStream bis=new BufferedInputStream(readfile);
FileOutputStream writefile= new FileOutputStream("E:/火影忍者_new.mp4");

BufferedOutputStream bos=new BufferedOutputStream(writefile,1000);
byte[] b=new byte[100000];
long n=0;
long before=System.currentTimeMillis();
while (readfile.read(b) != -1) {
writefile.write(b);
n++;
}
bis.close();
readfile.close();
bos.close();
writefile.close();
System.out.println("down!");
System.out.println("磁盘读取了"+n+"次.");
System.out.println(System.currentTimeMillis()-before+"ms");

} catch (FileNotFoundException e) {

e.printStackTrace();
} catch (IOException e) {

e.printStackTrace();
}

}
}

带缓冲的字节流读写数据-BufferedInputStream、BufferedOutputStream