JAVA IO -处理流 BufferedReader

1.继承关系图

首先了解一下 BufferedReader 的继承关系图,熟悉他的位置:
BufferedReader 是 Reader 的一个子类。

在这里插入图片描述

2.API 介绍

BufferedReader,读取文本文件的内容。
它有一个Reader 类型的属性,可以对Reader类型的对象进行扩展。
【此处使用到的就是 装饰器模式

		/**
        * BufferedReader 字符处理流 :
        *     作用 : 读取文本文件,本质是对节点流的一层包装,使功能使用更方便
        *                  【构造方法的参数中传入一个 Reader 类型的对象即可】
        *     注意 : 在关闭流时,只需要关闭最外层的处理流即可(源码中就是把内层的节点流给关掉了)。
        * 主要方法 : readLine():
        *     作用 : 读一行的文件
        *     返回值 : String lineTex,读取到的一行的文本内容
        *               null : 当读取结束时返回null,
        *                      [如果最后一行是空行,则会返回null]
        *               [注意] :返回值中不包含换行符
        */

3.文件读取案例代码

3.1 读取的文件内容

文件路径 : D:\EDailyRoutine\java-io-test\bufferedReader01.txt
文件内容如下:

大家好
欢迎来到BufferedReaderd读取文件:
     下面是这个文件中的内容:
      java是全世界最好的语言



     java真的是全世界最好的语言




-----------------------------------------



3.2 readLine() 方法

package com.northcastle.reader_;

import java.io.*;

public class ApplicationBufferReader {
    public static void main(String[] args) {
        //1.创建一个文件对象
        String filePath = "D:\\EDailyRoutine\\java-io-test\\bufferedReader01.txt";
        File file = new File(filePath);
        //2.声明、创建一个节点流对象
        FileReader fileReader = null;
        //3.声明、创建一个处理流对象
        BufferedReader bufferedReader = null;
        //4.声明一个变量接收读取到的内容
        String contextLine = "";
        //6.关闭处理流
        try {
            fileReader = new FileReader(file); // 实例化节点流 : FileReader
            bufferedReader = new BufferedReader(fileReader); // 实例化处理流 : BufferedReader
            contextLine = bufferedReader.readLine(); // 首次读取文本文件的内容
            //5.循环读取文本中的内容,并在控制台打印
            while (contextLine != null){
                //lineNum++;
                //System.out.println(Arrays.toString(contextLine.getBytes()) ); // 打印读取到的内容
                System.out.println(contextLine); // 打印读取到的内容
                contextLine = bufferedReader.readLine(); // 继续读取下一行的内容
            }
            System.out.println("文件读取结束 success!");

        } catch (FileNotFoundException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            if (bufferedReader != null){
                try {
                    bufferedReader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }


    }
}

运行结果:可以正常读取到文件中的内容
【注意】:源文件中 最后有三个空行,但在程序中只有两个空行
原因是:程序读取到最后一行的时候,返回了null(空行),所以没有进行打印

大家好
欢迎来到BufferedReaderd读取文件:
     下面是这个文件中的内容:
      java是全世界最好的语言



     java真的是全世界最好的语言




-----------------------------------------


文件读取结束 success!

4.完成

Congratulations!
You are one step closer to success!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值