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 格式重建 a String from data。
此介面中所有讀取例程通常成立,若在讀取所需位元組數前就已到達檔案結束,會拋出一個EOFException(這是一種 )。IOException 如果任何位元組因除檔案結束外無法讀取,則 IOException 拋出 Other Than EOFException 的位元組。 特別地,若輸入串流已被封閉,可能會拋出 a IOException 。
<h3>“modified-utf-8”> 修改版 UTF-8</h3>
DataInput 與 DataOutput 介面的實作以 UTF-8 略有修改的格式表示 Unicode 字串。 (有關標準 UTF-8 格式的資訊,請參見第 3.9 節 Unicode 標準4.0 版的 Unicode 編碼形式)
<ul><li>在 的'\u005Cu007F'範圍內'\u005Cu0001'的字元以一個位元組表示。
<li>空字元'\u005Cu0000'和 在 的'\u005Cu07FF'範圍內'\u005Cu0080'的字元由一對位元組表示。
<li>範圍內的字元'\u005Cu0800''\u005CuFFFF'以三個位元組表示。
</ul>
<table class=“plain” style=“margin-left:2em;”><caption UTF-8 值<的編碼/caption<>thead<>tr><th scope=“col” rowspan=“2”>Value</th<>th scope = “col” rowspan=“2”>Byte</th><th scope = “col” colspan=“8” id=“bit_a”> 位元組< 值/th<>/tr<>tr<>-- Value --><-- 位元組 --<>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><th scope=「col」 style=「width:3em」> 3 </th><scope =「col」 style=「width:3em」 2 </th<>scope =「col」 style=「width:3em」> 1 /th th scope=「col」 style=「width:3em」> 1 </th><th scope=「col」 style=「width:3em」> 0 </th/thead<>>< tbody><tr<>th scope =「row」 style=「text-align:<左;font-weight:normal“>\u005Cu0001 to \u005Cu007F</th<>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-weight:normal“\u005Cu0000>,<br>\u005Cu0080 to<\u005Cu07FF /th><th scope=”row“ style=”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“>位元 10-6 </tr><tr<>-- (value) --<>th scope=”row“ style=”font-weight:normal;text-align:center“> 2 </th><td style=”text-align:center“<>1 TD 樣式=”<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><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“>1 <TD 樣式=”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>空位元組'\u005Cu0000'以 2 位元組格式編碼,而非 1 位元組,因此編碼字串中不會嵌入空。
<
>僅使用1位元組、2位元組及3位元組格式。
<li>補充角色以替代對的形式表示。
</ul>
1.0 版本新增。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
屬性
| 名稱 | Description |
|---|---|
| Handle |
取得底層 Android 物件的 JNI 值。 (繼承來源 IJavaObject) |
| JniIdentityHashCode |
回傳包裹實例的 |
| JniManagedPeerState |
管理貴族的狀況。 (繼承來源 IJavaPeerable) |
| JniObjectReferenceControlBlock |
介面 |
| JniPeerMembers |
成員存取與召喚支援。 (繼承來源 IJavaPeerable) |
| PeerReference |
回傳JniObjectReference包裹後的 Java 物件實例。 (繼承來源 IJavaPeerable) |
方法
| 名稱 | Description |
|---|---|
| Disposed() |
當實例被處理後才被召喚。 (繼承來源 IJavaPeerable) |
| DisposeUnlessReferenced() |
如果沒有未解決的參考資料,則 |
| Finalized() |
當實例完成後才會被通知。 (繼承來源 IJavaPeerable) |
| ReadBoolean() |
讀取一個輸入位元組,若該位元組非零 |
| ReadByte() |
讀取並回傳一個輸入位元組。 |
| ReadChar() |
讀取兩個輸入位元組並回傳一個 |
| ReadDouble() |
讀取八個輸入位元組並回傳一個 |
| ReadFloat() |
讀取四個輸入位元組並回傳一個 |
| ReadFully(Byte[], Int32, Int32) |
從輸入串流讀取 |
| ReadFully(Byte[]) |
從輸入串流讀取部分位元組並儲存到緩衝陣列 |
| ReadInt() |
讀取四個輸入位元組並回傳一個 |
| ReadLine() |
讀取輸入串流中的下一行文字。 |
| ReadLong() |
讀取八個輸入位元組並回傳一個 |
| ReadShort() |
讀取兩個輸入位元組並回傳一個 |
| ReadUnsignedByte() |
讀取一個輸入位元組,零擴展為型別 |
| ReadUnsignedShort() |
讀取兩個輸入位元組,並回傳 |
| ReadUTF() |
讀取已編碼為修改過的 UTF-8 格式的字串。 |
| SetJniIdentityHashCode(Int32) |
將回傳的值設為 |
| SetJniManagedPeerState(JniManagedPeerStates) |
介面 |
| SetPeerReference(JniObjectReference) |
將回傳的值設為 |
| SkipBytes(Int32) |
嘗試跳過 |
| UnregisterFromRuntime() |
取消註冊此實例,讓執行時不會在未來 Java.Interop.JniRuntime+JniValueManager.PeekValue 的呼叫中回傳該實例。 (繼承來源 IJavaPeerable) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
介面 |
| ReadBooleanAsync(IDataInput) |
介面 |
| ReadByteAsync(IDataInput) |
介面 |
| ReadCharAsync(IDataInput) |
介面 |
| ReadDoubleAsync(IDataInput) |
介面 |
| ReadFloatAsync(IDataInput) |
介面 |
| ReadFullyAsync(IDataInput, Byte[], Int32, Int32) |
介面 |
| ReadFullyAsync(IDataInput, Byte[]) |
介面 |
| ReadIntAsync(IDataInput) |
介面 |
| ReadLineAsync(IDataInput) |
介面 |
| ReadLongAsync(IDataInput) |
介面 |
| ReadShortAsync(IDataInput) |
介面 |
| ReadUnsignedByteAsync(IDataInput) |
介面 |
| ReadUnsignedShortAsync(IDataInput) |
介面 |
| ReadUTFAsync(IDataInput) |
介面 |
| SkipBytesAsync(IDataInput, Int32) |
介面 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |