IDataInput.ReadUTF Metode
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Membaca dalam string yang telah dikodekan menggunakan format UTF-8 yang dimodifikasi.
[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
Mengembalikan
string Unicode.
- Atribut
Pengecualian
jika akhir input tercapai sebelum permintaan baca dapat dipenuhi.
jika terjadi kesalahan I/O saat membaca.
Keterangan
Membaca dalam string yang telah dikodekan menggunakan format UTF-8 yang dimodifikasi. Kontrak readUTF
umum adalah bahwa ia membaca representasi string karakter Unicode yang dikodekan dalam format UTF-8 yang dimodifikasi; string karakter ini kemudian dikembalikan sebagai String
.
Pertama, dua byte dibaca dan digunakan untuk membangun bilangan bulat 16-bit yang tidak ditandatangani dengan cara yang tepat dengan readUnsignedShort
metode . Nilai bilangan bulat ini disebut panjang UTF dan menentukan jumlah byte tambahan yang akan dibaca. Byte ini kemudian dikonversi menjadi karakter dengan mempertimbangkannya dalam grup. Panjang setiap grup dihitung dari nilai byte pertama grup. Byte yang mengikuti grup, jika ada, adalah byte pertama dari grup berikutnya.
Jika byte pertama grup cocok dengan pola 0xxxxxxx
bit (di mana x
berarti "mungkin 0
atau 1
"), maka grup hanya terdiri dari byte tersebut. Byte diperluas nol untuk membentuk karakter.
Jika byte pertama grup cocok dengan pola 110xxxxx
bit , maka grup terdiri dari byte a
tersebut dan byte b
kedua . Jika tidak ada byte b
(karena byte adalah byte a
terakhir yang akan dibaca), atau jika byte b
tidak cocok dengan pola 10xxxxxx
bit , maka dilemparkan UTFDataFormatException
. Jika tidak, grup dikonversi ke karakter:
{@code (char)(((a & 0x1F) << 6) | (b & 0x3F))
}
Jika byte pertama grup cocok dengan pola 1110xxxx
bit , maka grup terdiri dari byte a
tersebut dan dua byte b
lagi dan c
. Jika tidak ada byte c
(karena byte a
adalah salah satu dari dua byte terakhir yang akan dibaca), atau byte b
atau byte c
tidak cocok dengan pola 10xxxxxx
bit , maka dilemparkan UTFDataFormatException
. Jika tidak, grup dikonversi ke karakter:
{@code
(char)(((a & 0x0F) << 12) | ((b & 0x3F) << 6) | (c & 0x3F))
}
Jika byte pertama grup cocok dengan pola 1111xxxx
atau pola 10xxxxxx
, maka akan UTFDataFormatException
dilemparkan.
Jika akhir file ditemui kapan saja selama seluruh proses ini, maka akan EOFException
dilemparkan.
Setelah setiap grup dikonversi menjadi karakter oleh proses ini, karakter dikumpulkan, dalam urutan yang sama di mana grup yang sesuai dibaca dari aliran input, untuk membentuk String
, yang dikembalikan.
Metode writeUTF
antarmuka DataOutput
dapat digunakan untuk menulis data yang cocok untuk dibaca dengan metode ini.
Dokumentasi Java untuk java.io.DataInput.readUTF()
.
Bagian halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Proyek Sumber Terbuka Android dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Atribusi Creative Commons 2.5.