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 編碼形式)
<要的範圍'\u005Cu007F'
'\u005Cu0001'
中 ul><li>Characters 是以單一位元組表示。 <li>要範圍'\u005Cu0080'
'\u005Cu07FF'
中的 Null 字元'\u005Cu0000'
和字元是由一對位元組表示。 <要範圍'\u005Cu0800'
'\u005CuFFFF'
中的 li>字元以三個字節表示。 </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” 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 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
至<\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 th><><scope=”row“ rowspan=”2“ style=”text-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“ 至<\u005CuFFFF
/th><scope=”row“>\u005Cu0800
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。 <li>僅使用 1 位元組、2 位元組和 3 位元元組格式。 <li>增補字元會以代理字組的形式表示。 </ul>
已在1.0中新增。
此頁面的部分是根據 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) |
介面 |