次の方法で共有


IDataInput.ReadUTF メソッド

定義

変更された 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 番目のバイトabで構成されます。 バイト 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))
            }

グループの最初のバイトがパターンまたはパターン1111xxxx10xxxxxxと一致する場合は、a UTFDataFormatException がスローされます。

このプロセス全体の間にいつでもファイルの終わりが見られた場合は、an EOFException がスローされます。

このプロセスによってすべてのグループが文字に変換されると、文字は、対応するグループが入力ストリームから読み取られたのと同じ順序で収集され、返される A が形成 Stringされます。

インターフェイスDataOutputのメソッドはwriteUTF、このメソッドによる読み取りに適したデータを書き込む場合に使用できます。

の Java ドキュメントjava.io.DataInput.readUTF()

このページの一部は、Android オープンソース プロジェクトによって作成および共有され、クリエイティブ コモンズ 2.5 属性ライセンスに記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください