Appearance
Java FileInputStream 类
java.io
包中的 FileInputStream
类可用于从文件中读取数据(以字节为单位)。
它扩展了 InputStream
抽象类。
在我们学习 FileInputStream
之前,请确保了解 Java Files。
创建 FileInputStream
为了创建一个文件输入流,我们首先必须导入 java.io.FileInputStream
包。一旦我们导入了该包,在 Java 中可以这样创建文件输入流。
1. 使用文件路径
java
FileInputStream input = new FileInputStream(stringPath);
在这里,我们创建了一个与指定路径上的文件相关联的输入流。
2. 使用文件对象
java
FileInputStream input = new FileInputStream(File fileObject);
在这里,我们创建了一个与 fileObject
指定的文件相关联的输入流。
FileInputStream 的方法
FileInputStream
类提供了对 InputStream
类中不同方法的实现。
read() 方法
read()
- 从文件中读取一个字节read(byte[] array)
- 从文件中读取字节数,并将其存储在指定的数组中read(byte[] array, int start, int length)
- 从文件中读取长度等于length
的字节数,并将其从位置start
开始存储在指定的数组中
假设我们有一个名为 input.txt 的文件,其中包含以下内容。
plaintext
This is a line of text inside the file.
让我们尝试使用 FileInputStream
读取此文件。
java
import java.io.FileInputStream;
public class Main {
public static void main(String args[]) {
try {
FileInputStream input = new FileInputStream("input.txt");
System.out.println("文件中的数据: ");
// 读取第一个字节
int i = input.read();
while(i != -1) {
System.out.print((char)i);
// 从文件中读取下一个字节
i = input.read();
}
input.close();
}
catch(Exception e) {
e.getStackTrace();
}
}
}
输出
文件中的数据:
This is a line of text inside the file.
在上面的示例中,我们创建了一个名为 input
的文件输入流。该输入流与 input.txt 文件相关联。
java
FileInputStream input = new FileInputStream("input.txt");
为了从文件中读取数据,我们在 while 循环内部使用了 read()
方法。
available() 方法
要获取可用字节数,我们可以使用 available()
方法。例如,
java
import java.io.FileInputStream;
public class Main {
public static void main(String args[]) {
try {
// 假设 input.txt 文件包含以下文本
// This is a line of text inside the file.
FileInputStream input = new FileInputStream("input.txt");
// 返回可用字节数
System.out.println("开始时可用字节数: " + input.available());
// 从文件中读取 3 个字节
input.read();
input.read();
input.read();
// 返回可用字节数
System.out.println("结束时可用字节数: " + input.available());
input.close();
}
catch (Exception e) {
e.getStackTrace();
}
}
}
输出
开始时可用字节数: 39
结束时可用字节数: 36
在上面的示例中,
- 我们首先使用
available()
方法检查文件输入流中可用字节数。 - 然后我们使用
read()
方法三次从文件输入流中读取了 3 个字节。 - 现在,在读取这些字节之后,我们再次检查了可用字节数。此时,可用字节数减少了 3。
skip() 方法
要丢弃并跳过指定数量的字节,我们可以使用 skip()
方法。例如,
java
import java.io.FileInputStream;
public class Main {
public static void main(String args[]) {
try {