欢迎访问宙启技术站
智能推送

Java中如何使用FileInputStream和BufferedReader读取文件内容

发布时间:2023-06-10 01:50:40

FileInputStream和BufferedReader是Java语言中两个常用的文件输入流类,在读取文件内容时,这两个类经常被使用,本文将介绍他们的使用方法。

Java FileInputStream类

Java FileInputStream类用于从文件中读取字节内容,它继承自InputStream父类。使用该类可以实现从本地文件中读取数据,然后将读取的数据传输到程序中。

常用的方法:

构造方法:

public FileInputStream?(File file):创建一个文件输入流对象,将对应文件的内容读取到该流中。

public FileInputStream?(String name):创建一个文件输入流对象,将指定路径的文件内容读取到该流中。

读写方法:

public int read():从此输入流中读取一个字节的数据。

public int read?(byte[] b):从此输入流中将最多 b.length 个字节的数据读入一个 byte 数组中。

public long skip?(long n):从输入流跳过并丢弃 n 个字节的数据。

public int available():返回从底层输入流中可读取的字节数。

public void close():关闭此文件输入流并释放与该流关联的所有系统资源。

Java BufferedReader类

Java BufferedReader类用于从字符输入流中读取文本,它继承自Reader父类。使用该类可以实现从文本文件中读取数据,然后将读取的数据传输到程序中。

在使用BufferedReader时,建议同时使用InputStreamReader类,将字节流转换为字符流,以方便读取文本内容。

常用的方法:

构造方法:

public BufferedReader?(Reader in):创建一个字符输入流对象,使用该对象可以从输入流中读取字符。

读写方法:

public String readLine():读取一个文本行。

public int read?(char[] cbuf, int off, int len):将字符读入数组中的一部分。

public void close():关闭输入流并释放与该流关联的所有系统资源。

Java FileInputStream和BufferedReader的使用示例

下面是一个使用Java FileInputStream和BufferedReader读取文件内容的示例:

File file = new File("file.txt");

// 使用FileInputStream读取文件内容
FileInputStream fis = new FileInputStream(file);
byte[] buffer = new byte[1024];
int len = -1;
while ((len = fis.read(buffer)) != -1) {
    String s = new String(buffer, 0, len);
    System.out.println(s);
}
fis.close();

// 使用BufferedReader读取文件内容
FileReader fr = new FileReader(file);
BufferedReader br = new BufferedReader(fr);
String line = null;
while ((line = br.readLine()) != null) {
    System.out.println(line);
}
br.close();
fr.close();

在该示例中,首先通过FileInputStream读取了文件内容,然后通过BufferedReader读取了同一文件的内容,分别使用了不同的读写方法,最后通过关闭流完成了所有操作。

需要注意的是,使用Java FileInputStream和BufferedReader读取文件内容时,需要在读写完成后关闭流,释放系统资源。