1、介绍
FileInputStream是文件输入流,继承于InputStream,主要用于读取诸如图像数据的原始字节流,其类图如下图所示。
2、构造方法
构造方法 | 主要作用 |
---|---|
FileInputStream(File file) | 通过打开与实际文件的连接创建一个 FileInputStream ,该文件由文件系统中的 File 对象 file 命名。 |
FileInputStream(FileDescriptor fdObj) | 创建 FileInputStream 通过使用文件描述符 fdObj ,其表示在文件系统中的现有连接到一个实际的文件。 |
FileInputStream(String name) | 通过打开与实际文件的连接来创建一个 FileInputStream ,该文件由文件系统中的路径名 name 命名。 |
3、常见方法
方法 | 主要作用 |
---|---|
close() | 关闭此文件输入流并释放与流相关联的任何系统资源。 |
finalize() | 确保当这个文件输入流的 close 方法没有更多的引用时被调用。 |
read() | 从该输入流读取一个字节的数据。 |
read(byte[] b) | 从该输入流读取最多 b.length 个字节的数据为字节数组。 |
read(byte[] b, int off, int len) | 从该输入流读取最多 len 字节的数据为字节数组。 |
注意:read所用方法的返回值都是int类型,如果结果为-1,说明所有数据都已经读取完毕。
4、示例
需求:读取file1.txt文件,并将文件内容打印到控制台中
分析:
1、创建FileInputStream对象
2、用上述对象读取文件
3、关闭文件流,释放资源
public class FileInputStream_ {
@Test
public void file_input_stream(){
String filepath = "D:\\file\\file1.txt";
FileInputStream fileInputStream = null;
int readData = 0;
try {
fileInputStream = new FileInputStream(filepath);
//数据的下一个字节,如果到达文件末尾,则为-1。
while ((readData = fileInputStream.read()) != -1){
System.out.print((char) readData);
}
} catch (IOException e) {
e.printStackTrace();
}finally {
try {
fileInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}