IDataInput.ReadUTF Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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 110xxxxx
de bits , el grupo consta de ese byte a
y un segundo byte b
. Si no hay ningún byte (porque byte b
a
era el último de los bytes que se van a leer), o si byte b
no coincide con el patrón 10xxxxxx
de 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 1110xxxx
de bits , el grupo consta de ese byte a
y dos bytes b
más y c
. Si no hay ningún byte (porque byte a
c
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 10xxxxxx
de 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.