- ·上一篇文章:文件字节输出流-FileOutputStream
- ·下一篇文章:java文件字节输入流-FileInputStream
带缓冲的字节流读写数据-BufferedInputStream、BufferedOutputStream
-->
该类实现缓冲的输出流。通过设置这种输出流,应用程序就可以将各个字节写入底层输出流中,而不必针对每次字节写入调用底层系统。
摘自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