Condividi tramite


IDataInput.ReadUTF Metodo

Definizione

Legge in una stringa codificata usando un formato UTF-8 modificato.

[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

Restituisce

stringa Unicode.

Attributi

Eccezioni

se viene raggiunta la fine dell'input prima che la richiesta di lettura possa essere soddisfatta.

se si verifica un errore di I/O durante la lettura.

Commenti

Legge in una stringa codificata usando un formato UTF-8 modificato. Il contratto generale di readUTF è che legge una rappresentazione di una stringa di caratteri Unicode codificata in formato UTF-8 modificato. Questa stringa di caratteri viene quindi restituita come .String

In primo luogo, due byte vengono letti e usati per costruire un intero senza segno a 16 bit esattamente nel modo del readUnsignedShort metodo . Questo valore intero viene chiamato lunghezza UTF e specifica il numero di byte aggiuntivi da leggere. Questi byte vengono quindi convertiti in caratteri considerandoli in gruppi. La lunghezza di ogni gruppo viene calcolata dal valore del primo byte del gruppo. Il byte che segue un gruppo, se presente, è il primo byte del gruppo successivo.

Se il primo byte di un gruppo corrisponde al modello 0xxxxxxx di bit (dove x significa "può essere 0 o 1"), il gruppo è costituito solo da quel byte. Il byte è esteso zero per formare un carattere.

Se il primo byte di un gruppo corrisponde al modello 110xxxxxdi bit , il gruppo è costituito da tale byte a e da un secondo byte b. Se non è presente alcun byte b (perché byte è l'ultimo dei byte a da leggere) o se byte b non corrisponde al criterio 10xxxxxxdi bit , viene generata un'eccezione UTFDataFormatException . In caso contrario, il gruppo viene convertito nel carattere :

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

Se il primo byte di un gruppo corrisponde al modello 1110xxxxdi bit , il gruppo è costituito da tale byte a e da altri due byte b e c. Se non è presente alcun byte c (perché byte a è stato uno degli ultimi due byte da leggere) oppure byte b o byte c non corrisponde al modello 10xxxxxxdi bit , viene generata un'eccezione UTFDataFormatException . In caso contrario, il gruppo viene convertito nel carattere :

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

Se il primo byte di un gruppo corrisponde al modello o al modello 1111xxxx10xxxxxx, viene generata un'eccezione UTFDataFormatException .

Se viene rilevata la fine del file in qualsiasi momento durante l'intero processo, viene generata un'eccezione EOFException .

Dopo che ogni gruppo è stato convertito in un carattere da questo processo, i caratteri vengono raccolti, nello stesso ordine in cui i gruppi corrispondenti sono stati letti dal flusso di input, per formare un Stringoggetto , che viene restituito.

Il writeUTF metodo di interfaccia DataOutput può essere utilizzato per scrivere dati adatti per la lettura da parte di questo metodo.

Documentazione java per java.io.DataInput.readUTF().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dal progetto Open Source Android e usato in base ai termini descritti nella licenza Creative Commons 2.5 Attribuzione.

Si applica a

Vedi anche