📅  最后修改于: 2023-12-03 15:01:56.598000             🧑  作者: Mango
在 Java 中,Reader 是一个抽象类,用于读取字符流。它是一个抽象类,不能直接实例化,因此需要使用其子类来实现具体的功能。
Reader 类中的 close() 方法用于关闭当前 Reader 流,当读取完数据后,应该调用该方法释放资源。在调用close() 方法后,Reader 流将不再有效。
close() 方法的语法如下:
public void close() throws IOException
close() 方法没有参数。
close() 方法没有返回值。如果成功关闭了 Reader 流,则不会抛出异常。如果关闭失败,则会抛出 IOException 异常。
下面是一个使用 FileReader 读取文件内容并关闭流的示例:
import java.io.*;
public class Main {
public static void main(String[] args) {
String fileName = "example.txt";
try {
FileReader reader = new FileReader(fileName);
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
reader.close(); //关闭流
} catch (IOException e) {
System.out.println("读取文件出错:" + e.getMessage());
}
}
}
上述代码中,调用了 FileReader 的 read() 方法读取了文件中的数据,并在读取完毕后调用了 close() 方法关闭了流。
同时,close() 方法还可以使用 try-with-resources 语句来自动关闭 Reader 流。下面是一个示例:
try (Reader reader = new FileReader(fileName)) {
int data;
while ((data = reader.read()) != -1) {
System.out.print((char) data);
}
} catch (IOException e) {
System.out.println("读取文件出错:" + e.getMessage());
}
示例代码中使用了 try-with-resources 语句,在 try 块中创建了 FileReader 的实例,并在 try 块结束后自动关闭流。
总的来说,使用 close() 方法可以保证在读取完数据后,及时释放流所占用的资源,避免对系统资源的浪费。同时,使用 try-with-resources 语句可以更加方便地管理流资源。