- 所有已实现的接口:
-
Closeable,AutoCloseable
FileInputStream 从文件系统中的文件获取输入字节。可用的文件取决于主机环境。
FileInputStream 用于读取原始字节流,例如图像数据。要读取字符流,请考虑使用 FileReader。
-
Constructor Summary
ConstructorsConstructorDescriptionFileInputStream(File file) 通过打开与文件系统中的File对象file命名的实际文件建立FileInputStream。FileInputStream(FileDescriptor fdObj) 通过使用表示文件系统中实际文件的现有连接的文件描述符fdObj创建FileInputStream。FileInputStream(String name) 通过打开与文件系统中路径名name命名的实际文件建立FileInputStream。 -
Method Summary
Modifier and TypeMethodDescriptionint返回可以在下一次调用此输入流的方法时读取(或跳过)的剩余字节数的估计值,而不会被阻塞。voidclose()关闭此文件输入流并释放与流关联的任何系统资源。返回与此文件输入流关联的唯一FileChannel对象。final FileDescriptorgetFD()返回代表此FileInputStream使用的文件系统中实际文件的连接的FileDescriptor对象。intread()从此输入流中读取一个字节的数据。intread(byte[] b) 从此输入流中最多读取b.length字节的数据到字节数组中。intread(byte[] b, int off, int len) 从此输入流中最多读取len字节的数据到字节数组中。longskip(long n) 从输入流中跳过并丢弃n字节的数据。Methods declared in class java.io.InputStream
mark, markSupported, nullInputStream, readAllBytes, readNBytes, readNBytes, reset, skipNBytes, transferTo
-
Constructor Details
-
FileInputStream
通过打开与文件系统中路径名name命名的实际文件建立FileInputStream。创建一个新的FileDescriptor对象来表示此文件连接。首先,如果存在安全管理器,则将使用
name参数调用其checkRead方法。如果命名文件不存在,是目录而不是常规文件,或由于某种其他原因无法打开以供读取,则会抛出
FileNotFoundException。- 参数:
-
name- 系统相关的文件名。 - 抛出:
-
FileNotFoundException- 如果文件不存在,是目录而不是常规文件,或由于某种其他原因无法打开以供读取。 -
SecurityException- 如果存在安全管理器且其checkRead方法拒绝对文件的读取访问。 - 参见:
-
FileInputStream
通过打开与文件系统中的File对象file命名的实际文件建立FileInputStream。创建一个新的FileDescriptor对象来表示此文件连接。首先,如果存在安全管理器,则将使用由
file参数表示的路径调用其checkRead方法。如果命名文件不存在,是目录而不是常规文件,或由于某种其他原因无法打开以供读取,则会抛出
FileNotFoundException。- 参数:
-
file- 要打开以供读取的文件。 - 抛出:
-
FileNotFoundException- 如果文件不存在,是目录而不是常规文件,或由于某种其他原因无法打开以供读取。 -
SecurityException- 如果存在安全管理器且其checkRead方法拒绝对文件的读取访问。 - 参见:
-
FileInputStream
通过使用表示文件系统中实际文件的现有连接的文件描述符fdObj创建FileInputStream。如果存在安全管理器,则将使用文件描述符
fdObj调用其checkRead方法,以查看是否可以读取文件描述符。如果对文件描述符的读取访问被拒绝,则会抛出SecurityException。如果
fdObj为 null,则会抛出NullPointerException。如果
fdObj为invalid,则此构造函数不会抛出异常。但是,如果在结果流上调用方法以尝试对流进行 I/O,则会抛出IOException。- 参数:
-
fdObj- 要打开以供读取的文件描述符。 - 抛出:
-
SecurityException- 如果存在安全管理器且其checkRead方法拒绝对文件描述符的读取访问。 - 参见:
-
-
Method Details
-
read
从此输入流中读取一个字节的数据。如果尚未有输入可用,则此方法将阻塞。- 指定者:
-
read在类InputStream - 返回:
-
下一个数据字节,如果已到达文件末尾,则返回
-1。 - 抛出:
-
IOException- 如果发生 I/O 错误。
-
read
从此输入流中最多读取b.length字节的数据到字节数组中。此方法将阻塞,直到有一些输入可用。- 覆盖:
-
read在类InputStream - 参数:
-
b- 要读取数据的缓冲区。 - 返回:
-
读入缓冲区的总字节数,如果没有更多数据因已到达文件末尾而返回
-1。 - 抛出:
-
IOException- 如果发生 I/O 错误。 - 参见:
-
read
从此输入流中最多读取len字节的数据到字节数组中。如果len不为零,则该方法将阻塞,直到有一些输入可用;否则,不会读取任何字节,返回0。- 覆盖:
-
read在类InputStream - 参数:
-
b- 要读取数据的缓冲区。 -
off- 写入数据的数组b中的起始偏移量。 -
len- 要读取的最大字节数。 - 返回:
-
读入缓冲区的总字节数,如果没有更多数据因已到达流末尾而返回
-1。 - 抛出:
-
NullPointerException- 如果b为null。 -
IndexOutOfBoundsException- 如果off为负数,len为负数,或len大于b.length - off。 -
IOException- 如果发生 I/O 错误。 - 参见:
-
skip
跳过并丢弃输入流中的n字节数据。skip方法可能因为各种原因而最终跳过一些较小数量的字节,可能为0。如果n为负数,则该方法将尝试向后跳过。如果后备文件在当前位置不支持向后跳过,则会抛出IOException。返回实际跳过的字节数。如果向前跳过,则返回正值。如果向后跳过,则返回负值。该方法可能会跳过比后备文件中剩余的字节数更多的字节。这不会产生异常,跳过的字节数可能包括超出后备文件EOF的一些字节。在跳过文件末尾后尝试从流中读取将导致返回-1,表示文件结束。
- 覆盖:
-
skip在类中InputStream - 参数:
-
n- 要跳过的字节数。 - 返回:
- 实际跳过的字节数。
- 抛出:
-
IOException- 如果n为负数,如果流不支持寻址,或者发生I/O错误。 - 参见:
-
available
返回一个估计值,表示可以从此输入流中读取(或跳过)的剩余字节数,而不会被下一次调用此输入流的方法阻塞。当文件位置超出EOF时返回0。下一次调用可能是同一个线程或另一个线程。读取或跳过这么多字节不会阻塞,但可能读取或跳过较少的字节。在某些情况下,非阻塞读取(或跳过)可能看起来被阻塞,而实际上只是慢,例如在慢速网络上读取大文件时。
- 覆盖:
-
available在类中InputStream - 返回:
- 估计可以从此输入流中读取(或跳过)的剩余字节数,而不会阻塞。
- 抛出:
-
IOException- 如果此文件输入流已通过调用close关闭,或者发生I/O错误。
-
close
关闭此文件输入流并释放与流相关联的任何系统资源。如果此流有一个关联的通道,则该通道也将被关闭。
- 指定者:
-
close在接口中AutoCloseable - 指定者:
-
close在接口中Closeable - 覆盖:
-
close在类中InputStream - API注释:
-
重写
close()以执行清理操作仅在直接调用或由try-with-resources调用时是可靠的。 - 实现要求:
-
需要在流变得不可达后进行资源清理的子类应使用
Cleaner机制。如果此流有一个关联的通道,则此方法将关闭该通道,进而关闭此流。重写此方法的子类应准备处理可能的重入调用。
- 抛出:
-
IOException- 如果发生I/O错误。
-
getFD
返回代表此FileInputStream正在使用的文件系统中实际文件连接的FileDescriptor对象。- 返回:
- 与此流关联的文件描述符对象。
- 抛出:
-
IOException- 如果发生I/O错误。 - 参见:
-
getChannel
返回与此文件输入流关联的唯一FileChannel对象。返回的通道的初始
position将等于到目前为止从文件中读取的字节数。从此流读取字节将增加通道的位置。显式更改通道的位置,或通过读取更改此流的文件位置。- 返回:
- 与此文件输入流关联的文件通道
- 自:
- 1.4
-