言語

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 バイトを読み取り、 readUnsignedShort メソッドの方法で符号なし 16 ビット整数を構築するために使用します。 この整数値は UTF 長 と呼ばれ、読み取る追加バイト数を指定します。 これらのバイトは、グループ内で考慮することで文字に変換されます。 各グループの長さは、グループの最初のバイトの値から計算されます。 グループの後のバイト (ある場合) は、次のグループの最初のバイトです。

グループの最初のバイトがビット パターンの 0xxxxxxx と一致する場合 ( x は " 0 または 1" であることを意味します)、グループはそのバイトだけで構成されます。 バイトは 0 で拡張され、文字が形成されます。

グループの最初のバイトがビット パターンの 110xxxxxと一致する場合、グループはそのバイト a と 2 番目のバイト bで構成されます。 バイト b がない場合 (バイト a が読み取られるバイトの最後であるため)、またはバイト b がビット パターンの 10xxxxxxと一致しない場合は、 UTFDataFormatException がスローされます。 それ以外の場合、グループは文字に変換されます。

{@code (char)(((a & 0x1F) << 6) | (b & 0x3F))
            }

グループの最初のバイトがビット パターンの 1110xxxxと一致する場合、グループはそのバイト a とさらに 2 バイトの bcで構成されます。 バイト c がない場合 (バイト a が読み取るバイトの最後の 2 つのいずれかであったため)、またはバイト b またはバイト c がビット パターンの 10xxxxxxと一致しない場合は、 UTFDataFormatException がスローされます。 それ以外の場合、グループは文字に変換されます。

{@code
            (char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
            }

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

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

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

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

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

適用対象

こちらもご覧ください