IDataInput.ReadUTF メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
変更された UTF-8 形式を使用してエンコードされた文字列を読み取ります。
[Android.Runtime.Register("readUTF", "()Ljava/lang/String;", "GetReadUTFHandler:Java.IO.IDataInputInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")]
public string? ReadUTF ();
[<Android.Runtime.Register("readUTF", "()Ljava/lang/String;", "GetReadUTFHandler:Java.IO.IDataInputInvoker, Mono.Android, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null")>]
abstract member ReadUTF : unit -> string
戻り値
Unicode 文字列。
- 属性
例外
読み取り要求が満たされる前に入力の末尾に達した場合は 。
読み取り中に I/O エラーが発生した場合。
注釈
変更された UTF-8 形式を使用してエンコードされた文字列を読み取ります。 一般的なコントラクト readUTF
は、変更された UTF-8 形式でエンコードされた Unicode 文字列の表現を読み取るということです。この文字の文字列は String
、 .
まず、2 バイトを読み取り、メソッドの正確な方法で符号なし 16 ビット整数を readUnsignedShort
構築するために使用します。 この整数値は UTF 長と呼ばれ、読み取る追加バイト数を指定します。 これらのバイトは、グループ内で考慮することで文字に変換されます。 各グループの長さは、グループの最初のバイトの値から計算されます。 グループの後のバイト (ある場合) は、次のグループの最初のバイトです。
グループの最初のバイトがビット パターン 0xxxxxxx
と一致する場合 (" x
be 0
or 1
") は、そのバイトだけで構成されます。 バイトは 0 で拡張され、文字が形成されます。
グループの最初のバイトがビット パターン110xxxxx
と一致する場合、グループはそのバイトと 2 番目のバイトa
b
で構成されます。 バイト b
がない場合 (バイトが読み取られるバイト a
の最後であるため)、またはバイト b
がビット パターン 10xxxxxx
と一致しない場合は、a UTFDataFormatException
がスローされます。 それ以外の場合、グループは文字に変換されます。
{@code (char)(((a & 0x1F) << 6) | (b & 0x3F))
}
グループの最初のバイトがビット パターン 1110xxxx
と一致する場合、グループはそのバイト a
とさらに 2 バイト b
で構成されます c
。 バイト c
がない場合 (バイト a
が読み取る最後の 2 バイトの 1 つであったため)、またはバイト b
またはバイト c
のいずれかがビット パターン 10xxxxxx
と一致しない場合は、a UTFDataFormatException
がスローされます。 それ以外の場合、グループは文字に変換されます。
{@code
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
}
グループの最初のバイトがパターンまたはパターン1111xxxx
10xxxxxx
と一致する場合は、a UTFDataFormatException
がスローされます。
このプロセス全体の間にいつでもファイルの終わりが見られた場合は、an EOFException
がスローされます。
このプロセスによってすべてのグループが文字に変換されると、文字は、対応するグループが入力ストリームから読み取られたのと同じ順序で収集され、返される A が形成 String
されます。
インターフェイスDataOutput
のメソッドはwriteUTF
、このメソッドによる読み取りに適したデータを書き込む場合に使用できます。
の Java ドキュメントjava.io.DataInput.readUTF()
このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。