BufferedReader缓冲字符输入流

目录

BufferedReader缓冲字符输入流

1. BufferedReader 和 BufferedWriter简介

2. BufferedReader介绍

2.1 构造方法

2.2 成员方法

2.3 读取文件:一行一行的读取


BufferedReader缓冲字符输入流

1. BufferedReader 和 BufferedWriter简介

  • 为了提高字符流读写的效率,引入了缓冲机制,进行字符批量的读写,提高了单个字符读写的效率。BufferedReader用于加快读取字符的速度,BufferedWriter用于加快写入的速度
  • BufferedReader和BufferedWriter类各拥有8192个字符的缓冲区。当BufferedReader在读取文本文件时,会尽量先从文件中读入字符数据并放满缓冲区,若之后使用read()方法,会先从缓冲区中进行读取。如果缓冲区数据不足,才会再从文件中读取,使用BufferedWriter时,写入的数据并不会先输出到目的地,而是先存储至缓冲区中。如果缓冲区中的数据满了,才会一次对目的地进行写出。

2. BufferedReader介绍

  • BufferedReader是为了提供读的效率而设计的一个包装类,它可以包装字符流。可以从字符输入流中读取文本,缓冲各个字符,从而实现字符、数组和行的高效读取。
  • 关闭处理流时,只需要关闭外层流即可,底层会自动关闭节点流

2.1 构造方法

2.2 成员方法

2.3 读取文件:一行一行的读取

public class BufferedReader01 {
    public static void main(String[] args) throws Exception{
        String filePath = "D:\\story.java";
        BufferedReader bufferedReader = new BufferedReader(new FileReader(filePath));
        String line;
        //1.readLine()按行读取文件
        //2.当返回null时,表示文件读取完毕
        while ((line = bufferedReader.readLine()) != null){
            System.out.println(line);
        }
        //只需要关闭 BufferedReader外层流
        bufferedReader.close();
    }
}

  • 需要注意的是:readLine()方法返回的一行字符中不包含换行符,所以输出的时候要自己加上换行符。

  • BufferedReader比FileReader高级的地方在于这个,FileReader能一次读取一个字符,或者一个字符数组。而BufferedReader也可以,同时BufferedReader还能一次读取一行字符串。同时,BufferedReader带缓冲,会比FileReader快很多。
  • 但是FileReader使用项目的编码来读取解析字符,不能指定编码,可能会出现编码问题,如果要指定编码可以使用包装InputStreamReader的BufferedReader。这样兼顾效率和编码。
     

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值