如何使用 Java 中的 FileInputStream 函数读取文件?
Java中的FileInputStream类是一个输入流,用于从文件中读取字节流数据。它继承了InputStream类并且提供了许多操作文件输入的方法。在本文中,我将向您演示如何使用该类从文件读取字节流数据,并提供一些基本的示例程序。
1. 创建FileInputStream对象
要使用FileInputStream读取文件,我们需要首先创建一个FileInputStream对象。在创建FileInputStream对象时,需要指定要读取的文件的路径和文件名。例如:
FileInputStream input = new FileInputStream("D:/example.txt");
这个语句创建了一个FileInputStream对象,用于读取D盘根目录下的example.txt文件。如果文件不存在,将会抛出FileNotFoundException异常。
2. 读取文件数据
一旦我们创建了FileInputStream对象,我们就可以使用它的read()方法来读取文件数据。读取的数据存储在一个缓冲区中并返回。例如:
byte[] buffer = new byte[1024];
int read = input.read(buffer);
在这个例子中,我们创建了一个缓冲区,其大小为1024个字节。然后我们调用了input.read(buffer)方法,该方法从文件中读取最多1024字节的数据,并将数据保存在buffer数组中。read变量保存了实际读取的字节数。
3. 关闭FileInputStream对象
读取完文件后,我们需要关闭FileInputStream对象。关闭输入流可以释放所有的系统资源。例如:
input.close();
4. 完整的示例程序
下面是一个完整的Java程序,演示如何使用FileInputStream读取一个文本文件的内容:
import java.io.*;
public class ReadFileExample {
public static void main(String[] args) throws IOException {
FileInputStream input = null;
try {
input = new FileInputStream("D:/example.txt");
byte[] buffer = new byte[1024];
int read = input.read(buffer);
while (read != -1) {
String data = new String(buffer, 0, read);
System.out.print(data);
read = input.read(buffer);
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} finally {
if (input != null) {
input.close();
}
}
}
}
在这个示例程序中,我们首先创建了一个FileInputStream对象,在try语句块里读取文件数据,并且在finally语句块中关闭FileInputStream。
总结
通过Java的FileInputStream类继承InputStream类,我们可以读取文件数据。在使用FileInputStream类时,我们需要首先创建一个FileInputStream对象,然后使用它的read()方法读取数据。最后,我们需要记得关闭FileInputStream对象,以防止资源泄漏。
