Java FileInputStream 类

2024年10月24日 | 阅读时长:5 分钟

Java FileInputStream 类用于从文件中获取输入字节。它用于读取面向字节的数据(原始字节流),例如图像数据、音频、视频等。您也可以读取字符流数据。但是,建议使用FileReader类来读取字符流。

Java FileInputStream 类声明

让我们看一下 java.io.FileInputStream 类的声明

Java FileInputStream 类方法

方法描述
int available()它用于返回可以从输入流中读取的估计字节数。
int read()它用于从输入流中读取字节数据。
int read(byte[] b)它用于从输入流中读取最多b.length个字节的数据。
int read(byte[] b, int off, int len)它用于从输入流中读取最多len个字节的数据。
long skip(long x)它用于跳过并丢弃输入流中的 x 个字节数据。
FileChannel getChannel()它用于返回与文件输入流关联的唯一 FileChannel 对象。
FileDescriptor getFD()它用于返回FileDescriptor对象。
protected void finalize()它用于确保在不再有对文件输入流的引用时调用 close 方法。
void close()它用于关闭

Java FileInputStream 示例 1:读取单个字符

文件名:DataStreamExample.java

注意:运行代码之前,需要创建一个名为"testout.txt"的文本文件。在此文件中,我们写入了以下内容:

Welcome to javatpoint.

执行上述程序后,我们将从文件中得到一个字节形式的单个字符,即 87。要查看文本,我们需要将其转换为字符。

输出

W

Java FileInputStream 示例 2:读取所有字符

文件名:DataStreamExample.java

输出

Welcome to javaTpoint

FileInputStream 类构造函数

Java 中的 FileInputStream 类提供了几个构造函数来创建 FileInputStream 实例,允许我们以各种方式从文件中读取字节。以下是 FileInputStream 类中可用构造函数的概述:

1. FileInputStream(String name)

它通过打开与实际文件的连接来创建一个FileInputStream,该文件由文件系统中路径名name指定。

  • 参数:name - 文件名。
  • 抛出 FileNotFoundException:如果文件不存在、是目录而不是常规文件,或者由于其他原因无法打开进行读取。

示例

文件名:FileInputStreamExample.java

输出

Java FileInputStream Class

2. FileInputStream(File file)

它通过打开与由File对象表示的实际文件的连接来创建一个FileInputStream

  • 参数:file - 表示要打开的文件的File对象。
  • 抛出 FileNotFoundException:如果文件不存在、是目录而不是常规文件,或者由于其他原因无法打开进行读取。

示例

文件名:FileInputStreamExample.java

输出

Java FileInputStream Class

3. FileInputStream(FileDescriptor fdObj)

它通过使用表示与文件系统中实际文件的现有连接的文件描述符fdObj来创建一个FileInputStream

  • 参数:fdObj - 文件描述符。
  • 注意:当我们有一个文件的FileDescriptor时,例如从另一个文件系统操作或作为进程间通信的一部分获得,它很有用。

示例

文件名:FileDescriptorExample.java

输出

Hello, world!

Java FileInputStream Class

该代码将创建一个名为 example.txt 的文件,向其中写入 "Hello, world!",然后使用 FileDescriptor 读回它,以演示如何利用此 Java 功能。请根据您的需要调整文件路径和环境。这是一个独立的示例,有助于理解 FileInputStream 和 FileDescriptor 如何协同工作。