你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
FileInputStream 类
- java.
lang. Object - InputStream
- com.
microsoft. azure. storage. file. FileInputStream
- com.
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:
Throws:
方法详细信息
available
public synchronized int available()
返回可在此输入流 () 中读取或跳过的字节数的估计值,而无需在下一次调用此输入流的方法时阻止。 下一个调用可能是同一线程或另一个线程。 如此多字节的单个读取或跳过不会阻止,但可能会读取或跳过更少的字节。
Returns:
int
个 ,它表示可以在不阻塞的情况下从此输入流中) 读取或跳过 (或跳过的字节数的估计值;当它到达输入流的末尾时,该字节数为 0。Throws:
close
public synchronized void close()
关闭此输入流并释放与该流关联的任何系统资源。
Throws:
mark
public synchronized void mark(final int readlimit)
标记此输入流中的当前位置。 对 reset 方法的后续调用会将此流重新定位到最后标记的位置,以便后续读取重新读取相同的字节。
Parameters:
int
,它表示在标记位置变为无效之前可以读取的最大字节数限制。
markSupported
public boolean markSupported()
测试此输入流是否支持标记和重置方法。 是否支持标记和重置是特定输入流实例的固定属性。 的 markSupported 方法 InputStream 返回 false。
Returns:
True
如果此流实例支持标记和重置方法,则为 ; False
否则。
read
public int read()
从输入流中读取下一字节的数据。 值字节作为 int 返回,范围为 0 到 255。 如果由于已到达流的末尾而没有可用的字节,则返回值 -1。 此方法会阻止,直到输入数据可用、检测到流的末尾或引发异常。
Returns:
int
,表示读取到缓冲区的字节总数;如果由于已到达流的末尾而没有更多数据,则为 -1。Throws:
read
public int read(final byte[] b)
从输入流中读取一定数量的字节,并将其存储在缓冲区数组 中。 实际读取的字节数作为整数返回。 此方法会阻止,直到输入数据可用、检测到文件末尾或引发异常。 如果 的长度为零,则不读取任何字节,并返回 0;否则,将尝试读取至少一个字节。 如果由于流位于文件末尾而没有可用的字节,则返回值 -1;否则,至少读取一个字节并将其存储到 中。
第一个字节读取存储在 元素中,下一个字节将存储到 中,依此存储。 读取的字节数最多等于 的长度。 以实际读取的字节数为 ;这些字节将通过 存储在 元素中,使元素不受影响。
类 InputStream 的 方法具有相同的效果:
Parameters:
byte
数组,表示将数据读取到其中的缓冲区。
Throws:
byte
如果数组为 null,则为 b
。
read
public int read(final byte[] b, final int off, final int len)
将输入流中最多字节的数据读取到字节数组中。 尝试读取尽可能多的字节,但可能会读取较小的字节数。 实际读取的字节数作为整数返回。 此方法会阻止,直到输入数据可用、检测到文件末尾或引发异常。
如果 为零,则不读取任何字节,并返回 0;否则,将尝试读取至少一个字节。 如果由于流位于文件末尾而没有可用的字节,则返回值 -1;否则,至少读取一个字节并将其存储到 中。
第一个字节读取存储在 元素中,下一个字节将存储到 中,依此存储。 读取的字节数最多等于 。 以实际读取的字节数为 ;这些字节将通过 存储在 元素中,使元素不受影响。
在每种情况下,通过 的元素和通过 的元素都不受影响。
类 InputStream 的 方法只是重复调用 方法。 如果第一次此类调用导致 ,则会从对 方法的调用返回该异常。 如果对 的任何后续调用导致 ,则会捕获异常并将其视为文件结尾;读取到该点的字节存储到中,并返回异常发生前读取的字节数。 此方法的默认实现将阻止,直到读取请求的输入数据量、检测到文件末尾或引发异常为止。 建议子类提供此方法的更高效实现。
Parameters:
byte
数组,表示将数据读取到其中的缓冲区。
int
,它表示写入数据的数组中的 byte
起始偏移量。
int
,表示要读取的最大字节数。
Returns:
int
,表示读取到缓冲区的字节总数;如果由于已到达流的末尾而没有更多数据,则为 -1。Throws:
byte
如果数组为 null,则为 b
。
off
为负数, len
则为负数或 len
大于 b.length - off
。
reset
public synchronized void reset()
将此流重新定位到上次在此输入流上调用 mark 方法时的位置。 注意 重新定位文件读取流将禁用文件 MD5 检查。
Throws:
skip
public synchronized long skip(final long n)
跳过并丢弃此输入流中的 n 个字节数据。 由于各种原因,skip 方法可能最终跳过了一些较小的字节数(可能为 0)。 这可能是由多个条件中的任何一个导致的:在跳过 n 个字节之前到达文件末尾只是一种可能性。 返回跳过的实际字节数。 如果 n 为负数,则不会跳过任何字节。
注意 重新定位文件读取流将禁用文件 MD5 检查。
Parameters:
long
,它表示要跳过的字节数。