다음을 통해 공유


IDataInput.ReadUTF 메서드

정의

수정된 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

반환

유니코드 문자열입니다.

특성

예외

읽기 요청을 충족하기 전에 입력의 끝에 도달하면

읽는 동안 I/O 오류가 발생하는 경우

설명

수정된 UTF-8 형식을 사용하여 인코딩된 문자열을 읽습니다. 일반적인 계약은 readUTF 수정된 UTF-8 형식으로 인코딩된 유니코드 문자열의 표현을 읽는 것입니다. 그런 다음, 이 문자 문자열은 .로 String반환됩니다.

먼저 두 바이트를 읽고 메서드의 방식으로 readUnsignedShort 부호 없는 16비트 정수 생성에 사용됩니다. 이 정수 값을 UTF 길이라고 하며 읽을 추가 바이트 수를 지정합니다. 그런 다음 이러한 바이트는 그룹에서 고려하여 문자로 변환됩니다. 각 그룹의 길이는 그룹의 첫 번째 바이트 값에서 계산됩니다. 그룹 뒤의 바이트(있는 경우)는 다음 그룹의 첫 번째 바이트입니다.

그룹의 첫 번째 바이트가 비트 패턴 0xxxxxxx (" x may 0 또는 1")을 의미하는 경우 그룹은 해당 바이트만으로 구성됩니다. 바이트는 문자를 형성하기 위해 0 확장됩니다.

그룹의 첫 번째 바이트가 비트 패턴 110xxxxx과 일치하는 경우 그룹은 해당 바이트와 a 두 번째 바이트 b로 구성됩니다. 바이트가 b 없거나(바이트가 a 읽을 바이트의 마지막 바이트이기 때문에) 바이트가 b 비트 패턴 10xxxxxx과 일치하지 않으면 throw UTFDataFormatException 됩니다. 그렇지 않으면 그룹이 문자로 변환됩니다.

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

그룹의 첫 번째 바이트가 비트 패턴 1110xxxx과 일치하는 경우 그룹은 해당 바이트 a 및 2바이트 및 2바이트로 bc구성됩니다. 바이트가 c 없거나(바이트가 a 읽을 마지막 두 바이트 중 하나이기 때문에) 바이트 또는 바이트가 bc 비트 패턴 10xxxxxx과 일치하지 않으면 throw UTFDataFormatException 됩니다. 그렇지 않으면 그룹이 문자로 변환됩니다.

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

그룹의 첫 번째 바이트가 패턴 또는 패턴 1111xxxx10xxxxxx과 일치하면 a가 UTFDataFormatException throw됩니다.

이 전체 프로세스 EOFException 중에 언제든지 파일의 끝이 발견되면 파일이 throw됩니다.

이 프로세스에서 모든 그룹을 문자로 변환한 후에는 해당 그룹이 입력 스트림에서 읽은 순서와 동일한 순서로 문자가 수집되어 반환되는 문자를 형성 String합니다.

인터페이스 DataOutput 메서드를 writeUTF 사용하여 이 메서드에서 읽기에 적합한 데이터를 작성할 수 있습니다.

에 대한 java.io.DataInput.readUTF()Java 설명서

이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.

적용 대상

추가 정보