Compartir a través de


IDataInput.ReadUTF Método

Definición

Lee en una cadena que se ha codificado mediante un formato UTF-8 modificado.

[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

Devoluciones

una cadena Unicode.

Atributos

Excepciones

si se alcanza el final de la entrada antes de que se pueda satisfacer la solicitud de lectura.

si se produce un error de E/S al leer.

Comentarios

Lee en una cadena que se ha codificado mediante un formato UTF-8 modificado. El contrato general de readUTF es que lee una representación de una cadena de caracteres Unicode codificada en formato UTF-8 modificado; esta cadena de caracteres se devuelve como .String

En primer lugar, se leen dos bytes y se usan para construir un entero de 16 bits sin signo de la manera exacta del readUnsignedShort método . Este valor entero se denomina longitud UTF y especifica el número de bytes adicionales que se van a leer. A continuación, estos bytes se convierten en caracteres teniendo en cuenta en grupos. La longitud de cada grupo se calcula a partir del valor del primer byte del grupo. El byte que sigue a un grupo, si existe, es el primer byte del siguiente grupo.

Si el primer byte de un grupo coincide con el patrón 0xxxxxxx de bits (donde x significa "puede ser 0 o 1"), el grupo consta de solo ese byte. El byte se extiende cero para formar un carácter.

Si el primer byte de un grupo coincide con el patrón 110xxxxxde bits , el grupo consta de ese byte a y un segundo byte b. Si no hay ningún byte (porque byte ba era el último de los bytes que se van a leer), o si byte b no coincide con el patrón 10xxxxxxde bits , se produce una UTFDataFormatException excepción . De lo contrario, el grupo se convierte en el carácter :

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

Si el primer byte de un grupo coincide con el patrón 1110xxxxde bits , el grupo consta de ese byte a y dos bytes b más y c. Si no hay ningún byte (porque byte ac era uno de los dos últimos bytes que se van a leer), o bien byte b o byte c no coincide con el patrón 10xxxxxxde bits , se produce una UTFDataFormatException excepción . De lo contrario, el grupo se convierte en el carácter :

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

Si el primer byte de un grupo coincide con el patrón 1111xxxx o el patrón 10xxxxxx, se produce una UTFDataFormatException excepción .

Si se encuentra el final del archivo en cualquier momento durante todo este proceso, se produce una EOFException excepción .

Después de convertir cada grupo en un carácter por este proceso, los caracteres se recopilan, en el mismo orden en el que se leyeron sus grupos correspondientes desde el flujo de entrada, para formar un String, que se devuelve.

El writeUTF método de interfaz DataOutput se puede usar para escribir datos adecuados para leerlos mediante este método.

Documentación de Java para java.io.DataInput.readUTF().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a

Consulte también