• BufferedReader和 BufferedWriter属于字符流,是按照字符来读取数据的
  • 关闭时处理流,只需要关闭外层流即可

    案例:

    需求:

    使用BufferedReader读取文本文件,并显示在控制台

实现:

  1. package test;
  2. import java.io.BufferedReader;
  3. import java.io.FileReader;
  4. /**
  5. * 演示bufferedReader 使用
  6. */
  7. public class Main {
  8. public static void main(String[] args) throws Exception {
  9. String filePath = "D:\\a.txt";
  10. //创建bufferedReader
  11. BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
  12. //读取
  13. String line; //按行读取, 效率高
  14. //说明
  15. //1. bufferedReader.readLine() 是按行读取文件
  16. //2. 当返回null时,表示文件读取完毕
  17. while ((line = bufferedReader.readLine()) != null) {
  18. System.out.println(line);
  19. }
  20. //关闭流, 这里注意,只需要关闭 BufferedReader ,因为底层会自动的去关闭 节点流
  21. //FileReader。
  22. /*
  23. public void close() throws IOException {
  24. synchronized (lock) {
  25. if (in == null)
  26. return;
  27. try {
  28. in.close();//in 就是我们传入的 new FileReader(filePath), 关闭了.
  29. } finally {
  30. in = null;
  31. cb = null;
  32. }
  33. }
  34. }
  35. */
  36. bufferedReader.close();
  37. }
  38. }