IDataInput 接口
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
该 DataInput
接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。
[Android.Runtime.Register("java/io/DataInput", "", "Java.IO.IDataInputInvoker")]
public interface IDataInput : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/io/DataInput", "", "Java.IO.IDataInputInvoker")>]
type IDataInput = interface
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 派生
- 属性
- 实现
注解
该 DataInput
接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。 还可以使用修改后的 UTF-8 格式从数据重新构造 String
数据。
此接口中的所有读取例程通常都是如此,如果在读取所需的字节数之前达到文件的末尾,则会引发一EOFException
种(即一种)。IOException
如果因文件结束以外的任何原因无法读取任何字节,则引发其他字节IOException
EOFException
。 具体而言,如果输入流已关闭,可能会引发该 IOException
事件。
<h3>“modified-utf-8”>Modified UTF-8</h3>
DataInput 和 DataOutput 接口的实现以略微修改 UTF-8 的格式表示 Unicode 字符串。 (有关标准 UTF-8 格式的信息,请参阅 Unicode 标准版本 4.0 的第 3.9 部分 Unicode 编码形式)
<要由单个字节表示的范围'\u005Cu0001'
'\u005Cu007F'
中的 ul><li>Characters。 <li>要由一对字节表示的范围'\u005Cu0080'
'\u005Cu07FF'
中的 null 字符'\u005Cu0000'
和字符。 <要表示的范围'\u005Cu0800'
'\u005CuFFFF'
中的 li>字符由三个字节表示。 </ul>
<table class=“plain” style=“margin-left:2em;”><UTF-8 值/caption<>thead><tr<>th scope=“col” rowspan=“2”>Value</th><scope=“col” rowspan=“2”>Byte</th<>th scope=“col” col“ colspan=”8“ id=”bit_a“>Bit Values</th<>/tr<<>>-- Value ---- Byte --><<>th scope=”col“ style=”width:3em“> 7 </th<>scope=”col“ style=”width:3em“> 6 </th<><>th scope=“col” style=“width:3em” 5 /th><scope=“col”> style=“width:3em”> 4 </th><scope=“col” style=“width:3em”> 3 </th<>scope=“col” style=“width:3em”> 2 </th<>scope=“col” style=“width:3em”> 1 </th<>scope=“col” style=“width:3em”> 0 </th/thead><tbody><tr<>th<> scope=“row” style=“text-align:<左;font-weight:normal“>\u005Cu0001
to \u005Cu007F
</th><scope=”row“ style=”font-weight:normal; text-align:center“> 1 </th<>td style=”text-align:center“>0 <td colspan=”7“ style=”text-align:right; padding-right:6em“>bits 6-0 </tr><tr<>th scope=”row“ rowspan=”2“ style=”text-align:left; font-align:left; font-weight:normal“\u005Cu0000
>,< br>\u005Cu0080
to<\u005Cu07FF
/th><scope=”row“ style=”font-weight:正常;text-align:center“> 1 </th<>td style=”text-align:center“>1 <td style=”text-align:center“>1 <td style=”text-align:center“>0 <td colspan=”5“ style=”text-align:right; padding-right:6em“>bits 10-6 </tr<>tr<>-- (value) --<>th scope=”row“ style=”font-weight:normal; text-align:center“> 2 </th<>td style=”text-align:center“>1 <td style=”text-align:center“>0 td colspan=”6“ style=”text-align:right; padding-right:6em“>bits 5-0 </tr<>tr<>th scope=”row“ rowspan=”3“ style=”text-align:left; font-weight:normal“\u005Cu0800
> to<\u005CuFFFF
/th<>scope=”row“ style=”font-weight:normal; text-align:center“> 1 </th<>td style=”text-align:center“>1 <td style=”text-align:center“>1 <td style=”text-align:<center“>1 <td style=”text-align:center“>0 <td colspan=”4“ style=”text-align:right; padding-right:6em“>bits 15-12 </tr<>tr><-- (value) --><th scope=”row“ style=”font-weight:normal; text-align:center“> 2 </th><td style=”text-align:center“>1 <td style=”text-align:center“>0 <td colspan=”6“ style=”text-align:right; padding-right:6em“>bits 11-6</tr><tr><-- (value) --<>th scope=“row” style=“font-weight:normal; text-align:center”> 3 </th<>td style=“text-align:center”>1 <td style=“text-align:center”>0 <td colspan=“6” style=“text-align:right; padding-right:6em”>bits 5-0 </tr></tbody></table>
此格式与标准 UTF-8 格式之间的差异如下: <ul><li>null 字节 '\u005Cu0000'
以 2 字节格式而不是 1 字节进行编码,以便编码的字符串永远不会嵌入 null。 <>仅使用 1 字节、2 字节和 3 字节格式。 <li>补充字符以代理项对的形式表示。 </ul>
在 1.0 中添加。
适用于 . 的 java.io.DataInput
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。
属性
Handle |
获取基础 Android 对象的 JNI 值。 (继承自 IJavaObject) |
JniIdentityHashCode |
返回包装实例的值 |
JniManagedPeerState |
托管对等方的状态。 (继承自 IJavaPeerable) |
JniPeerMembers |
成员访问和调用支持。 (继承自 IJavaPeerable) |
PeerReference |
返回 JniObjectReference 包装的 Java 对象实例。 (继承自 IJavaPeerable) |
方法
Disposed() |
在释放实例时调用。 (继承自 IJavaPeerable) |
DisposeUnlessReferenced() |
如果没有对此实例的未完成引用,则调用 |
Finalized() |
在实例完成时调用。 (继承自 IJavaPeerable) |
ReadBoolean() |
读取一个输入字节,如果字节为零, |
ReadByte() |
读取并返回一个输入字节。 |
ReadChar() |
读取两个输入字节并返回一个 |
ReadDouble() |
读取八个输入字节并返回一个 |
ReadFloat() |
读取四个输入字节并返回一个 |
ReadFully(Byte[]) |
从输入流中读取一些字节并将其存储到缓冲区数组 |
ReadFully(Byte[], Int32, Int32) |
|
ReadInt() |
读取四个输入字节并返回一个 |
ReadLine() |
从输入流中读取下一行文本。 |
ReadLong() |
读取八个输入字节并返回一个 |
ReadShort() |
读取两个输入字节并返回一个 |
ReadUnsignedByte() |
读取一个输入字节,零将其扩展到类型 |
ReadUnsignedShort() |
读取两个输入字节,并在范围内 |
ReadUTF() |
读取已使用修改后的 UTF-8 格式进行编码的字符串。 |
SetJniIdentityHashCode(Int32) |
设置由 |
SetJniManagedPeerState(JniManagedPeerStates) |
该 |
SetPeerReference(JniObjectReference) |
设置由 |
SkipBytes(Int32) |
尝试从输入流跳过 |
UnregisterFromRuntime() |
取消注册此实例,以便运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。 (继承自 IJavaPeerable) |
扩展方法
JavaCast<TResult>(IJavaObject) |
执行 Android 运行时检查的类型转换。 |
JavaCast<TResult>(IJavaObject) |
该 |
GetJniTypeName(IJavaPeerable) |
该 |
ReadBooleanAsync(IDataInput) |
该 |
ReadByteAsync(IDataInput) |
该 |
ReadCharAsync(IDataInput) |
该 |
ReadDoubleAsync(IDataInput) |
该 |
ReadFloatAsync(IDataInput) |
该 |
ReadFullyAsync(IDataInput, Byte[]) |
该 |
ReadFullyAsync(IDataInput, Byte[], Int32, Int32) |
该 |
ReadIntAsync(IDataInput) |
该 |
ReadLineAsync(IDataInput) |
该 |
ReadLongAsync(IDataInput) |
该 |
ReadShortAsync(IDataInput) |
该 |
ReadUnsignedByteAsync(IDataInput) |
该 |
ReadUnsignedShortAsync(IDataInput) |
该 |
ReadUTFAsync(IDataInput) |
该 |
SkipBytesAsync(IDataInput, Int32) |
该 |