Java基础知识之BufferedReader流的使用

BufferedReader是Java中一个常用的字符输入流,常用于读取文本文件中的数据。相较于其他的字符输入流,BufferedReader具有缓冲功能,能够更加高效地读取文件的内容。本文将详细介绍BufferedReader流的使用,包括如何创建、如何读取文件内容、如何关闭

Java基础知识之BufferedReader流的使用

BufferedReader是Java中一个常用的字符输入流,常用于读取文本文件中的数据。相较于其他的字符输入流,BufferedReader具有缓冲功能,能够更加高效地读取文件的内容。本文将详细介绍BufferedReader流的使用,包括如何创建、如何读取文件内容、如何关闭流等。

创建BufferedReader流

要使用BufferedReader流,我们需要先创建一个FileReader对象,然后将其作为参数传入BufferedReader的构造方法中。示例代码如下:

File file = new File("D:\\data.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);

上述代码中,我们首先创建了一个File对象,该对象指向了我们要读取的文件。然后,我们创建了一个FileReader对象,并将上述File对象作为参数传入构造方法中,以创建一个文件字符输入流。接下来,我们创建了一个BufferedReader对象,并将FileReader对象作为参数传入构造方法中,以创建一个带有缓冲的字符输入流。

读取文件内容

创建了BufferedReader流之后,我们就可以使用其提供的readLine()方法来读取文件的内容了。readLine()方法将会一次读取一行文本,并返回该行文本内容的字符串。示例代码如下:

String line;
while ((line = bufferedReader.readLine()) != null) {
    System.out.println(line);
}

示例代码中,我们使用了一个while循环,不断调用readLine()方法,将读取到的文本内容赋值给line变量,如果line不为null,则打印该内容。如果文件的内容为:

Hello
World
Welcome to Java

则上述代码会输出如下内容:

Hello
World
Welcome to Java

关闭流

最后,我们需要在程序结束时,手动关闭我们创建的BufferedReader流。示例代码如下:

bufferedReader.close();
fileReader.close();

示例代码中,我们分别关闭了BufferedReader流和FileReader流。如果不手动关闭流,则会出现资源未释放的问题,可能会导致程序运行异常。

示例说明

下面,我们会通过两个示例来演示BufferedReader流的具体应用场景。

示例一: 统计文件中某个字符串出现的次数

假设我们需要统计文件中某个字符串出现的次数,我们可以使用下面的代码:

File file = new File("D:\\data.txt");
FileReader fileReader = new FileReader(file);
BufferedReader bufferedReader = new BufferedReader(fileReader);
String keyword = "Java";
String line;
int count = 0;
while ((line = bufferedReader.readLine()) != null) {
    count += (line.split(keyword).length - 1);
}
System.out.println(keyword + " 出现的次数:" + count);
bufferedReader.close();
fileReader.close();

示例代码中,我们首先读取了指定的文件,然后遍历文件的每一行,使用split()方法将该行内容按照关键字分割成一个字符串数组,然后使用数组长度减1的方式来计算该行中关键字出现的次数,再将该次数加到count变量上。最后,我们输出关键字出现的总次数。

示例二:读取网络上的文件

如果需要读取网络上的文件,我们可以使用URL类来创建一个网络文件的输入流。示例代码如下:

URL url = new URL("http://www.example.com/data.txt");
InputStream inputStream = url.openStream();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = bufferedReader.readLine()) != null) {
    System.out.println(line);
}
bufferedReader.close();
inputStream.close();

示例代码中,我们首先创建了一个URL对象,并将其设定为要读取的网络文件的URL。然后,我们通过调用URL的openStream()方法来获取该文件的输入流,接着,我们创建一个BufferedReader流,并将上述输入流作为参数传入,以创建一个带有缓冲的字符输入流。最后,我们遍历该文件的每一行,并输出其内容。

本文标题为:Java基础知识之BufferedReader流的使用

基础教程推荐