public class Base64InputStream
extends FilterInputStream
java.lang.Object | |||
↳ | java.io.InputStream | ||
↳ | java.io.FilterInputStream | ||
↳ | android.util.Base64InputStream |
一个InputStream对通过它读取的数据执行Base64解码。
Inherited fields |
---|
From class java.io.FilterInputStream
|
Public constructors |
|
---|---|
Base64InputStream(InputStream in, int flags) 对从包装流读取的数据执行Base64解码的InputStream。 |
Public methods |
|
---|---|
int |
available() 返回可以从此输入流读取(或跳过)的字节数的估计值,而不会被此输入流的下一个调用者方法阻塞。 |
void |
close() 关闭此输入流并释放与该流关联的所有系统资源。 |
void |
mark(int readlimit) 标记此输入流中的当前位置。 |
boolean |
markSupported() 测试此输入流是否支持 |
int |
read() 从此输入流中读取下一个字节的数据。 |
int |
read(byte[] b, int off, int len) 最多可将 |
void |
reset() 将此流重新定位到上次在此输入流上调用 |
long |
skip(long n) 跳过并丢弃来自输入流的 |
Inherited methods |
|
---|---|
From class java.io.FilterInputStream
|
|
From class java.io.InputStream
|
|
From class java.lang.Object
|
|
From interface java.io.Closeable
|
|
From interface java.lang.AutoCloseable
|
Base64InputStream (InputStream in, int flags)
对从包装流读取的数据执行Base64解码的InputStream。
Parameters | |
---|---|
in |
InputStream : the InputStream to read the source data from |
flags |
int : bit flags for controlling the decoder; see the constants in Base64 |
int available ()
返回可以从此输入流读取(或跳过)的字节数的估计值,而不会被此输入流的下一个调用者方法阻塞。 下一个调用者可能是同一个线程或另一个线程。 单个读取或跳过这么多字节不会被阻塞,但可以读取或跳过更少的字节。
此方法返回 in
.available()的结果。
Returns | |
---|---|
int |
an estimate of the number of bytes that can be read (or skipped over) from this input stream without blocking. |
void close ()
关闭此输入流并释放与该流关联的所有系统资源。 该方法仅执行in.close()
。
Throws | |
---|---|
IOException |
void mark (int readlimit)
标记此输入流中的当前位置。 随后调用reset
方法将此流重新定位到最后标记的位置,以便后续读取重新读取相同的字节。
readlimit
参数告诉这个输入流允许在标记位置失效之前读取很多字节。
该方法仅执行 in.mark(readlimit)
。
Parameters | |
---|---|
readlimit |
int : the maximum limit of bytes that can be read before the mark position becomes invalid. |
boolean markSupported ()
测试此输入流是否支持mark
和reset
方法。 该方法仅执行in.markSupported()
。
Returns | |
---|---|
boolean |
true if this stream type supports the mark and reset method; false otherwise. |
int read ()
从此输入流中读取下一个字节的数据。 值字节以int
形式返回,范围为0
至255
。 如果由于已到达流的末尾而没有可用的字节,则返回值-1
。 此方法阻塞直到输入数据可用,流的末尾被检测到,或抛出异常。
该方法只执行 in.read()
并返回结果。
Returns | |
---|---|
int |
the next byte of data, or -1 if the end of the stream is reached. |
Throws | |
---|---|
IOException |
int read (byte[] b, int off, int len)
最多可将len
字节的数据从此输入流转换为字节数组。 如果len
不为零,则该方法将阻塞,直到某些输入可用; 否则,不读取字节并返回0
。
该方法只执行 in.read(b, off, len)
并返回结果。
Parameters | |
---|---|
b |
byte : the buffer into which the data is read. |
off |
int : the start offset in the destination array b |
len |
int : the maximum number of bytes read. |
Returns | |
---|---|
int |
the total number of bytes read into the buffer, or -1 if there is no more data because the end of the stream has been reached. |
Throws | |
---|---|
IOException |
void reset ()
将此流重新定位到上次在此输入流上调用 mark
方法时的位置。
该方法仅执行 in.reset()
。
流标记旨在用于需要稍微阅读以查看流中内容的情况。 这通常通过调用一些通用解析器来完成。 如果数据流是解析处理的类型,它就会快乐地跳出来。 如果流不是这种类型,那么解析器在失败时应该抛出一个异常。 如果这发生在readlimit字节内,它允许外部代码重置流并尝试另一个分析器。
long skip (long n)
跳过并丢弃来自输入流的n
字节的数据。 由于各种原因, skip
方法可能跳过一些较小数量的字节,可能是0
。 返回跳过的实际字节数。
此方法仅执行 in.skip(n)
。
Parameters | |
---|---|
n |
long : the number of bytes to be skipped. |
Returns | |
---|---|
long |
the actual number of bytes skipped. |
Throws | |
---|---|
IOException |