如何使用BufferedReader循环读文件

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

举例如下

1、BufferedReader读取一行

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

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.rean(buffer)注意事项最近遇到一个问题

BufferedReader.rean(buffer)

读取数据时,最后一行必须获取到返回值

len=BufferedReader.rean(buffer)

只能取0到len区间的数据,len之后的数据为上次读取过的数据,原因是因为buffer读取时不会清空数组。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持。

因为有了梦想,我们才能拥有奋斗的目标,

如何使用BufferedReader循环读文件

相关文章:

你感兴趣的文章:

标签云: