CharsetDecoder.Decode 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
오버로드
Decode(ByteBuffer) |
단일 입력 바이트 버퍼의 나머지 콘텐츠를 새로 할당된 문자 버퍼로 디코딩하는 편리한 메서드입니다. |
Decode(ByteBuffer, CharBuffer, Boolean) |
지정된 입력 버퍼에서 가능한 한 많은 바이트를 디코딩하여 결과를 지정된 출력 버퍼에 기록합니다. |
Decode(ByteBuffer)
단일 입력 바이트 버퍼의 나머지 콘텐츠를 새로 할당된 문자 버퍼로 디코딩하는 편리한 메서드입니다.
[Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;", "")]
public Java.Nio.CharBuffer? Decode(Java.Nio.ByteBuffer? in);
[<Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;)Ljava/nio/CharBuffer;", "")>]
member this.Decode : Java.Nio.ByteBuffer -> Java.Nio.CharBuffer
매개 변수
- in
- ByteBuffer
입력 바이트 버퍼
반환
디코딩 작업의 결과를 포함하는 새로 할당된 문자 버퍼입니다. 버퍼의 위치는 0이고 해당 제한은 마지막으로 쓴 문자를 따릅니다.
- 특성
예외
다른 디코딩 작업이 진행 중인 경우
이 문자 집합에 대한 잘못된 입력 바이트 시퀀스가 발견되고 잘못된 형식의 오류에 대한 작업이 발생한 경우 Report
이 문자 집합에 대해 적법하지만 적용할 수 없는 입력 바이트 시퀀스가 발견되고 적용할 수 없는 문자 오류 Report에 대한 작업이 있는 경우 . 적용할 수 없음은 입력 버퍼의 현재 위치에 있는 바이트 시퀀스를 유니코드 문자 시퀀스에 매핑할 수 없음을 의미합니다.
디코딩 작업 중에 다른 예외가 발생한 경우
설명
단일 입력 바이트 버퍼의 나머지 콘텐츠를 새로 할당된 문자 버퍼로 디코딩하는 편리한 메서드입니다.
이 메서드는 전체 디코딩 작업을 구현합니다. 즉, 이 디코더를 다시 설정한 다음 지정된 바이트 버퍼의 바이트를 디코딩하고 마지막으로 이 디코더를 플러시합니다. 따라서 디코딩 작업이 이미 진행 중인 경우 이 메서드를 호출하지 않아야 합니다.
에 대한 java.nio.charset.CharsetDecoder.decode(java.nio.ByteBuffer)
Java 설명서
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.
적용 대상
Decode(ByteBuffer, CharBuffer, Boolean)
지정된 입력 버퍼에서 가능한 한 많은 바이트를 디코딩하여 결과를 지정된 출력 버퍼에 기록합니다.
[Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;", "")]
public Java.Nio.Charset.CoderResult? Decode(Java.Nio.ByteBuffer? in, Java.Nio.CharBuffer? out, bool endOfInput);
[<Android.Runtime.Register("decode", "(Ljava/nio/ByteBuffer;Ljava/nio/CharBuffer;Z)Ljava/nio/charset/CoderResult;", "")>]
member this.Decode : Java.Nio.ByteBuffer * Java.Nio.CharBuffer * bool -> Java.Nio.Charset.CoderResult
매개 변수
- in
- ByteBuffer
입력 바이트 버퍼
- out
- CharBuffer
출력 문자 버퍼
- endOfInput
- Boolean
true
호출자가 지정된 버퍼에 있는 바이트 이외의 추가 입력 바이트를 제공할 수 없는 경우에만
반환
종료 이유를 설명하는 코더 결과 개체
- 특성
예외
디코딩이 시작되었거나 이 디코딩 진행률에 더 이상 입력이 필요하지 않은 경우
메서드 BufferUnderflowException
가 DecodeLoop(ByteBuffer, CharBuffer) throw된 경우 또는 BufferOverflowException
.
설명
지정된 입력 버퍼에서 가능한 한 많은 바이트를 디코딩하여 결과를 지정된 출력 버퍼에 기록합니다.
버퍼는 현재 위치에서 시작하여 읽고 기록합니다. 최대 Buffer#remaining in.remaining()
바이트가 읽혀지고 대부분의 Buffer#remaining out.remaining()
문자가 기록됩니다. 버퍼의 위치는 읽은 바이트 및 쓴 문자를 반영하도록 진행되지만 해당 표시 및 제한은 수정되지 않습니다.
이 메서드는 입력 버퍼에서 바이트를 읽고 출력 버퍼에 문자를 쓰는 것 외에도 종료 이유를 설명하는 개체를 반환 CoderResult
합니다.
<ul>
<리>
CoderResult#UNDERFLOW
는 가능한 한 많은 입력 버퍼가 디코딩되었음을 나타냅니다. 추가 입력이 없으면 호출자가 디코딩 작업의 다음 단계로 진행할 수 있습니다. 그렇지 않으면 추가 입력을 사용하여 이 메서드를 다시 호출해야 합니다.
</리>
<리>
CoderResult#OVERFLOW
는 출력 버퍼에 더 이상 바이트를 디코딩할 공간이 충분하지 않음을 나타냅니다. 이 메서드는 버퍼#남은 남은 문자가 더 많은 출력 버퍼를 사용하여 다시 호출해야 합니다. 이 작업은 일반적으로 출력 버퍼에서 디코딩된 문자를 드레이닝하여 수행됩니다.
</리>
<리>
CoderResult#malformedForLength 잘못된 형식의 입력 결과는 잘못된 형식의 입력 오류가 감지되었음을 나타냅니다. 형식이 잘못된 바이트는 입력 버퍼의(증가될 수 있음) 위치에서 시작합니다. 형식이 잘못된 바이트 수는 결과 개체의 CoderResult#length() length
메서드를 호출하여 확인할 수 있습니다. 이 경우는 이 디코더의 #onMalformedInput 잘못된 형식의 동작인 CodingErrorAction#REPORT
경우에만 적용됩니다. 그렇지 않으면 잘못된 형식의 입력이 요청된 대로 무시되거나 바뀝니다.
</리>
<리>
CoderResult#unmappableForLength unmappable-character 결과는 적용할 수 없는 문자 오류가 검색되었음을 나타냅니다. 적용할 수 없는 문자를 디코딩하는 바이트는 입력 버퍼의(증가될 수 있음) 위치에서 시작합니다. 이러한 바이트 수는 결과 개체의 CoderResult#length() length
메서드를 호출하여 확인할 수 있습니다. 이 경우는 이 디코더 CodingErrorAction#REPORT
의 #onUnmappableCharacter 적용할 수 없는 동작인 경우에만 적용됩니다. 그렇지 않으면 요청된 대로 적용할 수 없는 문자가 무시되거나 바뀝니다.
</리>
</ul>
어쨌든 이 메서드를 동일한 디코딩 작업에서 다시 호출하는 경우 입력 버퍼에 남아 있는 바이트를 유지하여 다음 호출에 사용할 수 있도록 주의해야 합니다.
매개 변수는 endOfInput
호출자가 지정된 입력 버퍼에 포함된 것 이상으로 추가 입력을 제공할 수 있는지 여부를 이 메서드에 조언합니다. 추가 입력을 제공할 가능성이 있는 경우 호출자는 이 매개 변수를 전달 false
해야 합니다. 추가 입력을 제공할 가능성이 없으면 호출자가 전달 true
되어야 합니다. 그것은 잘못되지 않습니다, 그리고 사실 그것은 매우 일반적이다, 하나의 호출을 전달 false
하고 나중에 더 이상 입력이 실제로 사용할 수 없다는 것을 발견. 그러나 일련의 호출에서 이 메서드의 최종 호출은 항상 전달 true
되어 나머지 디코딩되지 않은 입력이 잘못된 형식으로 처리되도록 하는 것이 중요합니다.
이 메서드는 메서드를 호출하고 #decodeLoop decodeLoop
, 결과를 해석하고, 오류 조건을 처리하고, 필요에 따라 다시 호출하여 작동합니다.
이 페이지의 일부는 Android 오픈 소스 프로젝트에서 만들고 공유하고 Creative Commons 2.5 특성 라이선스에 설명된 용어에 따라 사용되는 작업을 기반으로 하는 수정 사항입니다.