Java中如何使用FileInputStream和BufferedReader读取文件内容
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读取文件内容时,需要在读写完成后关闭流,释放系统资源。
