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
返回。
首先,读取两个字节,并用于完全按照方法的方式 readUnsignedShort
构造无符号 16 位整数。 此整数值称为 UTF 长度 ,并指定要读取的其他字节数。 然后,通过在组中考虑这些字节,将这些字节转换为字符。 每个组的长度是从组的第一个字节的值计算的。 组后面的字节(如果有)是下一个组的第一个字节。
如果组的第一个字节与位模式 0xxxxxxx
匹配(其中 x
表示“可能 0
为或 1
”),则组只包含该字节。 字节是零扩展的,用于形成字符。
如果组的第一个字节与位模式 110xxxxx
匹配,则组由该字节 a
和第二个字节 b
组成。 如果没有字节 b
(因为字节 a
是要读取的最后一个字节),或者如果字节 b
与位模式 10xxxxxx
不匹配,则会引发 a UTFDataFormatException
。 否则,组将转换为字符:
{@code (char)(((a & 0x1F) << 6) | (b & 0x3F))
}
如果组的第一个字节与位模式1110xxxx
匹配,则组由该字节a
组成,再包含两个字节和c
两个字节b
。 如果没有字节 c
(因为字节 a
是要读取的最后两个字节之一),或者字节 b
或字节 c
与位模式 10xxxxxx
不匹配,则会引发一个 UTFDataFormatException
。 否则,组将转换为字符:
{@code
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
}
如果组的第一个字节与模式或模式1111xxxx
10xxxxxx
匹配,则会引发 aUTFDataFormatException
。
如果在整个过程中随时遇到文件结束,则会引发一个 EOFException
文件。
在此进程将每个组转换为字符后,将按照从输入流中读取相应组的顺序收集字符,形成返回的字符 String
。
接口writeUTF
DataOutput
方法可用于写入适合通过此方法读取的数据。
适用于 . 的 java.io.DataInput.readUTF()
Java 文档
本页的某些部分是根据 Android 开放源代码项目创建和共享的工作进行的修改,并根据 Creative Commons 2.5 属性许可证中所述的术语使用。