你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

FileInputStream 类

  • java.lang.Object
    • InputStream
      • com.microsoft.azure.storage.file.FileInputStream

public class FileInputStream

提供用于读取给定文件资源的输入流。

构造函数摘要

构造函数 说明
FileInputStream(final CloudFile parentFile, final AccessCondition accessCondition, final FileRequestOptions options, final OperationContext opContext)

初始化 FileInputStream 类的新实例。

方法摘要

修饰符和类型 方法和描述
synchronized int available()

返回可在此输入流 () 中读取或跳过的字节数的估计值,而无需在下一次调用此输入流的方法时阻止。 下一个调用可能是同一线程或另一个线程。 如此多字节的单个读取或跳过不会阻止,但可能会读取或跳过更少的字节。

synchronized void close()

关闭此输入流并释放与该流关联的任何系统资源。

synchronized void mark(final int readlimit)

标记此输入流中的当前位置。 对 reset 方法的后续调用会将此流重新定位到最后标记的位置,以便后续读取重新读取相同的字节。

boolean markSupported()

测试此输入流是否支持标记和重置方法。 是否支持标记和重置是特定输入流实例的固定属性。 的 markSupported 方法 InputStream 返回 false。

int read()

从输入流中读取下一字节的数据。 值字节作为 int 返回,范围为 0 到 255。 如果由于已到达流的末尾而没有可用的字节,则返回值 -1。 此方法会阻止,直到输入数据可用、检测到流的末尾或引发异常。

int read(final byte[] b)

从输入流中读取一定数量的字节,并将其存储在缓冲区数组 中。 实际读取的字节数作为整数返回。 此方法会阻止,直到输入数据可用、检测到文件末尾或引发异常。 如果 的长度为零,则不读取任何字节,并返回 0;否则,将尝试读取至少一个字节。 如果由于流位于文件末尾而没有可用的字节,则返回值 -1;否则,至少读取一个字节并将其存储到 中。

第一个字节读取存储在 元素中,下一个字节将存储到 中,依此存储。 读取的字节数最多等于 的长度。 以实际读取的字节数为 ;这些字节将通过 存储在 元素中,使元素不受影响。

InputStream 的 方法具有相同的效果:

int read(final byte[] b, final int off, final int len)

将输入流中最多字节的数据读取到字节数组中。 尝试读取尽可能多的字节,但可能会读取较小的字节数。 实际读取的字节数作为整数返回。 此方法会阻止,直到输入数据可用、检测到文件末尾或引发异常。

如果 为零,则不读取任何字节,并返回 0;否则,将尝试读取至少一个字节。 如果由于流位于文件末尾而没有可用的字节,则返回值 -1;否则,至少读取一个字节并将其存储到 中。

第一个字节读取存储在 元素中,下一个字节将存储到 中,依此存储。 读取的字节数最多等于 。 以实际读取的字节数为 ;这些字节将通过 存储在 元素中,使元素不受影响。

在每种情况下,通过 的元素和通过 的元素都不受影响。

InputStream 的 方法只是重复调用 方法。 如果第一次此类调用导致 ,则会从对 方法的调用返回该异常。 如果对 的任何后续调用导致 ,则会捕获异常并将其视为文件结尾;读取到该点的字节存储到中,并返回异常发生前读取的字节数。 此方法的默认实现将阻止,直到读取请求的输入数据量、检测到文件末尾或引发异常为止。 建议子类提供此方法的更高效实现。

synchronized void reset()

将此流重新定位到上次在此输入流上调用 mark 方法时的位置。 注意 重新定位文件读取流将禁用文件 MD5 检查。

synchronized long skip(final long n)

跳过并丢弃此输入流中的 n 个字节数据。 由于各种原因,skip 方法可能最终跳过了一些较小的字节数(可能为 0)。 这可能是由多个条件中的任何一个导致的:在跳过 n 个字节之前到达文件末尾只是一种可能性。 返回跳过的实际字节数。 如果 n 为负数,则不会跳过任何字节。

注意 重新定位文件读取流将禁用文件 MD5 检查。

构造函数详细信息

FileInputStream

protected FileInputStream(final CloudFile parentFile, final AccessCondition accessCondition, final FileRequestOptions options, final OperationContext opContext)

初始化 FileInputStream 类的新实例。

Parameters:

parentFile - 一个 CloudFile 对象,表示与此流关联的文件。
accessCondition - 一个 AccessCondition 对象,表示文件的访问条件。
options - 一个 FileRequestOptions 对象,它表示为请求指定任何其他选项。
opContext - 一个 OperationContext 对象,用于跟踪操作的执行。

Throws:

StorageException - 表示操作期间发生的任何错误的异常。

方法详细信息

available

public synchronized int available()

返回可在此输入流 () 中读取或跳过的字节数的估计值,而无需在下一次调用此输入流的方法时阻止。 下一个调用可能是同一线程或另一个线程。 如此多字节的单个读取或跳过不会阻止,但可能会读取或跳过更少的字节。

Returns:

int 个 ,它表示可以在不阻塞的情况下从此输入流中) 读取或跳过 (或跳过的字节数的估计值;当它到达输入流的末尾时,该字节数为 0。

Throws:

IOException - 如果发生 I/O 错误。

close

public synchronized void close()

关闭此输入流并释放与该流关联的任何系统资源。

Throws:

IOException - 如果发生 I/O 错误。

mark

public synchronized void mark(final int readlimit)

标记此输入流中的当前位置。 对 reset 方法的后续调用会将此流重新定位到最后标记的位置,以便后续读取重新读取相同的字节。

Parameters:

readlimit - 一个 int ,它表示在标记位置变为无效之前可以读取的最大字节数限制。

markSupported

public boolean markSupported()

测试此输入流是否支持标记和重置方法。 是否支持标记和重置是特定输入流实例的固定属性。 的 markSupported 方法 InputStream 返回 false。

Returns:

True 如果此流实例支持标记和重置方法,则为 ; False 否则。

read

public int read()

从输入流中读取下一字节的数据。 值字节作为 int 返回,范围为 0 到 255。 如果由于已到达流的末尾而没有可用的字节,则返回值 -1。 此方法会阻止,直到输入数据可用、检测到流的末尾或引发异常。

Returns:

一个 int ,表示读取到缓冲区的字节总数;如果由于已到达流的末尾而没有更多数据,则为 -1。

Throws:

IOException - 如果发生 I/O 错误。

read

public int read(final byte[] b)

从输入流中读取一定数量的字节,并将其存储在缓冲区数组 中。 实际读取的字节数作为整数返回。 此方法会阻止,直到输入数据可用、检测到文件末尾或引发异常。 如果 的长度为零,则不读取任何字节,并返回 0;否则,将尝试读取至少一个字节。 如果由于流位于文件末尾而没有可用的字节,则返回值 -1;否则,至少读取一个字节并将其存储到 中。

第一个字节读取存储在 元素中,下一个字节将存储到 中,依此存储。 读取的字节数最多等于 的长度。 以实际读取的字节数为 ;这些字节将通过 存储在 元素中,使元素不受影响。

InputStream 的 方法具有相同的效果:

Parameters:

b - 一个 byte 数组,表示将数据读取到其中的缓冲区。

Throws:

IOException - 如果第一个字节由于文件末尾以外的任何原因而无法读取,则输入流已关闭,或者如果发生其他 I/O 错误。
NullPointerException - byte如果数组为 null,则为 b

read

public int read(final byte[] b, final int off, final int len)

将输入流中最多字节的数据读取到字节数组中。 尝试读取尽可能多的字节,但可能会读取较小的字节数。 实际读取的字节数作为整数返回。 此方法会阻止,直到输入数据可用、检测到文件末尾或引发异常。

如果 为零,则不读取任何字节,并返回 0;否则,将尝试读取至少一个字节。 如果由于流位于文件末尾而没有可用的字节,则返回值 -1;否则,至少读取一个字节并将其存储到 中。

第一个字节读取存储在 元素中,下一个字节将存储到 中,依此存储。 读取的字节数最多等于 。 以实际读取的字节数为 ;这些字节将通过 存储在 元素中,使元素不受影响。

在每种情况下,通过 的元素和通过 的元素都不受影响。

InputStream 的 方法只是重复调用 方法。 如果第一次此类调用导致 ,则会从对 方法的调用返回该异常。 如果对 的任何后续调用导致 ,则会捕获异常并将其视为文件结尾;读取到该点的字节存储到中,并返回异常发生前读取的字节数。 此方法的默认实现将阻止,直到读取请求的输入数据量、检测到文件末尾或引发异常为止。 建议子类提供此方法的更高效实现。

Parameters:

b - 一个 byte 数组,表示将数据读取到其中的缓冲区。
off - 一个 int ,它表示写入数据的数组中的 byte 起始偏移量。
len - 一个 int ,表示要读取的最大字节数。

Returns:

一个 int ,表示读取到缓冲区的字节总数;如果由于已到达流的末尾而没有更多数据,则为 -1。

Throws:

IOException - 如果第一个字节由于文件末尾以外的任何原因而无法读取,或者输入流已关闭,或者如果发生其他 I/O 错误。
NullPointerException - byte如果数组为 null,则为 b
IndexOutOfBoundsException - 如果 off 为负数, len 则为负数或 len 大于 b.length - off

reset

public synchronized void reset()

将此流重新定位到上次在此输入流上调用 mark 方法时的位置。 注意 重新定位文件读取流将禁用文件 MD5 检查。

Throws:

IOException - 如果尚未标记此流,或者标记已失效。

skip

public synchronized long skip(final long n)

跳过并丢弃此输入流中的 n 个字节数据。 由于各种原因,skip 方法可能最终跳过了一些较小的字节数(可能为 0)。 这可能是由多个条件中的任何一个导致的:在跳过 n 个字节之前到达文件末尾只是一种可能性。 返回跳过的实际字节数。 如果 n 为负数,则不会跳过任何字节。

注意 重新定位文件读取流将禁用文件 MD5 检查。

Parameters:

n - 一个 long ,它表示要跳过的字节数。

适用于