语言

IDataInput 接口

定义

该 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 如果因文件结束以外的任何原因无法读取任何字节,则引发其他字节IOExceptionEOFException。 具体而言,如果输入流已关闭,可能会引发该 IOException 事件。

<h3>“modified-utf-8”>Modified UTF-8</h3>

DataInput 和 DataOutput 接口的实现以略微修改 UTF-8 的格式表示 Unicode 字符串。 (有关标准 UTF-8 格式的信息,请参阅 Unicode 标准版本 4.0 的第 3.9 部分 Unicode 编码形式)

<要由单个字节表示的范围><中的 ul>'\u005Cu0001'li'\u005Cu007F'Characters。 <li>要由一对字节表示的范围'\u005Cu0000''\u005Cu0080'中的 null 字符'\u005Cu07FF'和字符。 <要表示的范围>'\u005Cu0800'中的 li'\u005CuFFFF'字符由三个字节表示。 </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“<> to\u005Cu0800\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.DataInputJava 文档

本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。

属性

名称 说明
Handle

获取基础 Android 对象的 JNI 值。

(继承自 IJavaObject)
JniIdentityHashCode

返回包装实例的值 java.lang.System.identityHashCode() 。

(继承自 IJavaPeerable)
JniManagedPeerState

托管对等方的状态。

(继承自 IJavaPeerable)
JniObjectReferenceControlBlock

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

(继承自 IJavaPeerable)
JniPeerMembers

成员访问和调用支持。

(继承自 IJavaPeerable)
PeerReference

返回 JniObjectReference 包装的 Java 对象实例。

(继承自 IJavaPeerable)

方法

名称 说明
Disposed()

在释放实例时调用。

(继承自 IJavaPeerable)
DisposeUnlessReferenced()

如果没有对此实例的未完成引用,则调用 Dispose();否则不执行任何操作。

(继承自 IJavaPeerable)
Finalized()

在实例完成时调用。

(继承自 IJavaPeerable)
ReadBoolean()

读取一个输入字节,如果字节为零,true则返回false该字节是否为非零。

ReadByte()

读取并返回一个输入字节。

ReadChar()

读取两个输入字节并返回一个 char 值。

ReadDouble()

读取八个输入字节并返回一个 double 值。

ReadFloat()

读取四个输入字节并返回一个 float 值。

ReadFully(Byte[], Int32, Int32)

len从输入流读取字节。

ReadFully(Byte[])

从输入流中读取一些字节并将其存储到缓冲区数组 b中。

ReadInt()

读取四个输入字节并返回一个 int 值。

ReadLine()

从输入流中读取下一行文本。

ReadLong()

读取八个输入字节并返回一个 long 值。

ReadShort()

读取两个输入字节并返回一个 short 值。

ReadUnsignedByte()

读取一个输入字节,零将其扩展到类型 int,并返回结果,因此在范围中 0 通过 255。

ReadUnsignedShort()

读取两个输入字节,并在范围内int返回一个0值65535。

ReadUTF()

读取已使用修改后的 UTF-8 格式进行编码的字符串。

SetJniIdentityHashCode(Int32)

设置由 JniIdentityHashCode. 返回的值。

(继承自 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

(继承自 IJavaPeerable)
SetPeerReference(JniObjectReference)

设置由 PeerReference. 返回的值。

(继承自 IJavaPeerable)
SkipBytes(Int32)

尝试从输入流跳过 n 数据字节,放弃跳过的字节。

UnregisterFromRuntime()

取消注册此实例,以便运行时不会从将来 Java.Interop.JniRuntime+JniValueManager.PeekValue 的调用中返回它。

(继承自 IJavaPeerable)

扩展方法

名称 说明
GetJniTypeName(IJavaPeerable)

获取实例 self类型的 JNI 名称。

JavaAs<TResult>(IJavaPeerable)

尝试强制self键入TResult,检查强制是否在Java端有效。

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadBooleanAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadByteAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadCharAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadDoubleAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadFloatAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadFullyAsync(IDataInput, Byte[], Int32, Int32)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadFullyAsync(IDataInput, Byte[])

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadIntAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadLineAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadLongAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadShortAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadUnsignedByteAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadUnsignedShortAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

ReadUTFAsync(IDataInput)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

SkipBytesAsync(IDataInput, Int32)

该 DataInput 接口提供从二进制流读取字节,并从其中任何 Java 基元类型中的数据重新构造字节。

TryJavaCast<TResult>(IJavaPeerable, TResult)

尝试强制self键入TResult,检查强制是否在Java端有效。

适用于