我的编程空间,编程开发者的网络收藏夹
学习永远不晚

如何使用BufferedReader读取File

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

如何使用BufferedReader读取File

这篇文章主要介绍“如何使用BufferedReader读取File”,在日常操作中,相信很多人在如何使用BufferedReader读取File问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用BufferedReader读取File”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

使用BufferedReader读取File

Java编程思想一书里面有云,为了提高速度,可以用BufferedReader过滤器类,以提供缓冲区域。但是这个解释太简略了,看了这句话仍然不知道为什么要使用它,于是感觉值得研究一下。

其实只用FileReader也能完成读取文件的任务。

FileReader有三个用于read的函数

  • public int read():每次只read一个字符

  • public int read(char cbuf[], int offset, int length):每次read从offset到offset+length-1的字符,然后放进cbuf中

  • public int read(char cbuf[]):一次性的read出来所有的字符,直接放入cbuf中

这三个read方法,每次调用一次就会read一次file,进行一次IO。不管是多次read还是一次性的read,都不是很优雅的在read文件的方式。多次read必然会产生多次IO,一次性的read如果遇到很大的文件,对内存是极不友好的。

于是BufferedReader就显现出好处来了。BufferedReader使用装饰器模式,它的IO行为是每次读进来8k的数据到缓冲区,如果需要使用数据的时候,再直接从缓冲区里面拿出数据来使用。这样一来,既提高的读取速度,又节省了IO的次数,是一种比较优雅的读取文件的方式。

使用BufferedReader读取File的代码举例

BufferedReader bufferedReader = new BufferedReader(new FileReader("./pom.xml"));            StringBuilder stringBuilder = new StringBuilder();            while ((s = bufferedReader.readLine()) != null) {                stringBuilder.append(s + "\n");            }            System.out.println(stringBuilder.toString());

使用BufferedReader循环读文件(新手要注意的细节)

使用BufferedReader(缓存读取流)可以每次读取文件的一行。对于文件内容如果是按行为单位排列的话,则使用BufferedReader来读取文件还是比较方便的。

举例如下

1、BufferedReader读取一行

在F盘下有个txt文件,文件内容为

如何使用BufferedReader读取File

import java.io.*;public class test {    public static void main(String[] args)  {BufferedReader br = null;        try {            br = new BufferedReader(new FileReader("F:\\test.txt"));            System.out.println(br.readLine());        } catch (IOException e) {            e.printStackTrace();        }}

结果为:

哈哈0

2、BufferedReader循环读每一行

import java.io.*;public class test {    public static void main(String[] args)  {BufferedReader br = null;        try {            br = new BufferedReader(new FileReader("F:\\test.txt"));            String text = null;            //读取内容为null则表示读到了文件末尾        while ((text = br.readLine()) != null) {            System.out.println(text);        }        } catch (IOException e) {            e.printStackTrace();        }}

结果为:

哈哈0
哈哈1
哈哈2
哈哈3
哈哈4
哈哈5
哈哈6
哈哈7
哈哈8
哈哈9

3、注意细节

新手如果没不注意,容易写成:

import java.io.*;public class test {    public static void main(String[] args)  {BufferedReader br = null;        try {            br = new BufferedReader(new FileReader("F:\\test.txt"));            String text = null;            //        while (true) {            if (br.readLine() == null) {                break;            }            System.out.println(br.readLine());        }        } catch (IOException e) {            e.printStackTrace();        }}

结果为:

哈哈1
哈哈3
哈哈5
哈哈7
哈哈9

原因

while (true) {    if (br.readLine() == null) {        break;    }   System.out.println(br.readLine()); }

因为在while循环中, if 语句在做判断时,其实已经读取了一行,而读取的这行没有被打印出来,所以就造成了只打印了一部分。

到此,关于“如何使用BufferedReader读取File”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

如何使用BufferedReader读取File

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

如何使用BufferedReader读取File

这篇文章主要介绍“如何使用BufferedReader读取File”,在日常操作中,相信很多人在如何使用BufferedReader读取File问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何使用Buffe
2023-06-22

如何使用BufferedReader读取TXT文件中数值并输出最大值

本篇内容主要讲解“如何使用BufferedReader读取TXT文件中数值并输出最大值”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“如何使用BufferedReader读取TXT文件中数值并输出
2023-06-22

如何解决BufferedReader读取文件指定字符集问题

小编给大家分享一下如何解决BufferedReader读取文件指定字符集问题,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!BufferedReader读取文件指定字符集问题默认的读取方式BufferedReader buf
2023-06-22

如何利用html5 file api读取本地文件

小编给大家分享一下如何利用html5 file api读取本地文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在html4的年代,我们如果要在网页上呈现一张用户
2023-06-09

BufferedReader如何在Java项目中使用

这期内容当中小编将会给大家带来有关 BufferedReader如何在Java项目中使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。BufferedReader 介绍BufferedReader 是缓冲
2023-05-31

如何使用ADO.NET读取数据

小编给大家分享一下如何使用ADO.NET读取数据,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!ADO.NET还是比较常用的,于是我研究了一下ADO.NET读取数据
2023-06-17

如何使用 conn.read() 读取横幅

各位小伙伴们,大家好呀!看看今天我又给各位带来了什么文章?本文标题是《如何使用 conn.read() 读取横幅》,很明显是关于Golang的文章哈哈哈,其中内容主要会涉及到等等,如果能帮到你,觉得很不错的话,欢迎各位多多点评和分享!问题内
如何使用 conn.read() 读取横幅
2024-04-05

python如何使用fileinput读取文件

这篇文章主要介绍python如何使用fileinput读取文件,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!fileinput 是 Python 的内置模块,但我相信,不少人对它都是陌生的。今天我把 fileinpu
2023-06-14

如何使用Python读取xml文件

这篇文章主要介绍了如何使用Python读取xml文件,关于python读取xml文章很多,但大多文章都是贴一个xml文件,然后再贴个处理文件的代码希望这篇文章可以更通俗易懂的教如何使用python来读取xml文件
2023-05-15

如何使用ADO.NET Excel读取文件

小编给大家分享一下如何使用ADO.NET Excel读取文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!在关系数据库提供的各种对象中(表、视图、存储过程等),E
2023-06-17

如何用Pandas读取

本教程操作系统:Windows10系统、Dell G3电脑。Pandas是一个流行的Python数据处理库,可以用于读取和处理各种数据格式。下面是使用Pandas读取文件的一般步骤:1.导入Pandas库:import pandas as
如何用Pandas读取
2023-12-09

如何使用vbscript读取Access数据库

这篇文章主要介绍如何使用vbscript读取Access数据库,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!效果如图所示:核心代码:代码如下:Option Explicit Dim arrTables( ), i,
2023-06-08

如何使用cv2.imread()读取BGR图像

这篇文章给大家介绍如何使用cv2.imread()读取BGR图像,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。opencv读取图像为b,g,r方法,比如img = cv2.imread("xx.jpg")cv2.ims
2023-06-14

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录