缓冲输入流是对文件输入流的包装

作用

提供一个缓存空间buf,当输入的数据占满缓存时,才会输入到程序

低级流时一个一个的读取,而缓冲流有效的减少了硬盘的读取次数
​BufferedInputStream(缓冲输入流) - 图1

实例

使用和FileInputStream的使用方式一样,在定义时需要传入一个FileInputStream类型的对象作为参数

  1. import java.io.BufferedInputStream;
  2. import java.io.File;
  3. import java.io.FileInputStream;
  4. import java.io.IOException;
  5. /**
  6. * 字节输入缓冲流
  7. * @author Administrator
  8. *
  9. */
  10. public class BufferInputStreamStudy {
  11. public static void main(String[] args) {
  12. // TODO Auto-generated method stub
  13. //定义一个文件对象
  14. String path = "D:\\movie\\japan\\dj\\bdy.txt";
  15. File file = new File(path);
  16. //定义缓冲输入流的变量
  17. BufferedInputStream bis = null;
  18. FileInputStream in = null;
  19. try {
  20. //定义文件输入流,并将其进行Buffer包装
  21. in = new FileInputStream(file);
  22. bis = new BufferedInputStream(in);
  23. byte[] data = new byte[1024];
  24. //读取数据
  25. while(bis.read(data) != -1) {
  26. //将接收到的内容,输出到控制台
  27. System.out.println(new String(data,"utf-8"));
  28. }
  29. }catch (Exception e) {
  30. // TODO: handle exception
  31. e.printStackTrace();
  32. }finally {
  33. //关闭流
  34. try {
  35. bis.close();
  36. in.close();
  37. } catch (IOException e) {
  38. // TODO Auto-generated catch block
  39. e.printStackTrace();
  40. }
  41. }
  42. }
  43. }