Java中的FileInputStream类是Java IO包中的一个重要类,它用于从文件系统中的文件获取输入字节流。以下是关于FileInputStream类的详细介绍、代码例子及中文注释。
一、FileInputStream类概述
- 作用:FileInputStream类用于读取文件中的数据,它继承自InputStream类。
- 特点:FileInputStream类以字节为单位进行读取,适用于读取二进制文件。
- 使用场景:当需要读取本地文件系统中的文件时,可以使用FileInputStream类。
二、FileInputStream类构造方法 FileInputStream类提供了以下两个构造方法:
- FileInputStream(String name):通过文件路径名创建FileInputStream对象。
- FileInputStream(File file):通过File对象创建FileInputStream对象。 三、FileInputStream类常用方法
- int read():从文件中读取一个字节的数据,返回读取的字节值(0-255),如果已到达文件末尾,则返回-1。
- int read(byte[] b):从文件中读取最多b.length个字节的数据,并将其存储在字节数组b中,返回实际读取的字节数,如果已到达文件末尾,则返回-1。
- int read(byte[] b, int off, int len):从文件中读取最多len个字节的数据,并将其存储在字节数组b中,从off位置开始,返回实际读取的字节数,如果已到达文件末尾,则返回-1。
- long skip(long n):跳过并丢弃输入流中的n个字节。
- int available():返回下一次对此输入流调用的方法可以不受阻塞地从此输入流读取的字节数。
- void close():关闭此文件输入流并释放与流相关的系统资源。
-
以下是一个使用FileInputStream类的代码例子及中文注释:
import java.io.FileInputStream;
import java.io.IOException;
public class FileInputStreamExample {
public static void main(String[] args) {
// 定义文件路径
String filePath = "example.txt";
// 创建FileInputStream对象
FileInputStream fis = null;
try {
fis = new FileInputStream(filePath);
// 读取文件内容
int data;
// 循环读取文件中的数据,直到文件末尾
while ((data = fis.read()) != -1) {
// 输出读取到的字节
System.out.print((char) data);
}
} catch (IOException e) {
// 异常处理
e.printStackTrace();
} finally {
// 关闭文件输入流
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
以上代码演示了如何使用FileInputStream类读取文件内容。以下是对代码的详细解释:
- 导入java.io.FileInputStream和java.io.IOException类。
- 创建FileInputStreamExample类,包含main方法。
- 定义文件路径变量filePath。
- 创建FileInputStream对象fis,并将其初始化为null。
- 使用try-catch-finally语句块处理异常和资源释放。
- 在try块中,使用filePath创建FileInputStream对象fis。
- 使用while循环读取文件中的数据,直到文件末尾(read()方法返回-1)。
- 在循环中,将读取到的字节转换为字符并输出。
- 在catch块中,捕获并处理IOException异常。
- 在finally块中,判断fis是否为null,如果不为null,则调用close()方法关闭文件输入流。