언어

CharsetEncoder.Encode 메서드

정의

오버로드

속성 Description
Encode(CharBuffer)

단일 입력 문자 버퍼의 나머지 콘텐츠를 새로 할당된 바이트 버퍼로 인코딩하는 편리한 메서드입니다.

Encode(CharBuffer, ByteBuffer, Boolean)

지정된 입력 버퍼에서 가능한 한 많은 문자를 인코딩하여 결과를 지정된 출력 버퍼에 기록합니다.

Encode(CharBuffer)

단일 입력 문자 버퍼의 나머지 콘텐츠를 새로 할당된 바이트 버퍼로 인코딩하는 편리한 메서드입니다.

[Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;", "")]
public Java.Nio.ByteBuffer? Encode(Java.Nio.CharBuffer? in);
[<Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;)Ljava/nio/ByteBuffer;", "")>]
member this.Encode : Java.Nio.CharBuffer -> Java.Nio.ByteBuffer

매개 변수

in
CharBuffer

입력 문자 버퍼

반품

인코딩 작업의 결과를 포함하는 새로 할당된 바이트 버퍼입니다. 버퍼의 위치는 0이고 해당 제한은 기록된 마지막 바이트를 따릅니다.

특성

예외

다른 인코딩 작업이 진행 중인 경우

이 문자 집합에 대한 잘못된 입력 문자 시퀀스가 발생하고 잘못된 형식의 오류에 대한 작업이 발생하는 경우 Report

이 문자 집합에 대해 적법하지만 적용할 수 없는 입력 문자 시퀀스가 발견되고 적용할 수 없는 문자 오류 Report에 대한 작업이 있는 경우 . 적용할 수 없음은 입력 버퍼의 현재 위치에 있는 유니코드 문자 시퀀스를 동등한 바이트 시퀀스에 매핑할 수 없음을 의미합니다.

인코딩 작업 중에 다른 예외가 발생한 경우

설명

단일 입력 문자 버퍼의 나머지 콘텐츠를 새로 할당된 바이트 버퍼로 인코딩하는 편리한 메서드입니다.

이 메서드는 전체 인코딩 작업을 구현합니다. 즉, 이 인코더를 다시 설정한 다음 지정된 문자 버퍼의 문자를 인코딩하고 마지막으로 이 인코더를 플러시합니다. 따라서 인코딩 작업이 이미 진행 중인 경우 이 메서드를 호출하지 않아야 합니다.

에 대한 java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer)Java 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상

Encode(CharBuffer, ByteBuffer, Boolean)

지정된 입력 버퍼에서 가능한 한 많은 문자를 인코딩하여 결과를 지정된 출력 버퍼에 기록합니다.

[Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;", "")]
public Java.Nio.Charset.CoderResult? Encode(Java.Nio.CharBuffer? in, Java.Nio.ByteBuffer? out, bool endOfInput);
[<Android.Runtime.Register("encode", "(Ljava/nio/CharBuffer;Ljava/nio/ByteBuffer;Z)Ljava/nio/charset/CoderResult;", "")>]
member this.Encode : Java.Nio.CharBuffer * Java.Nio.ByteBuffer * bool -> Java.Nio.Charset.CoderResult

매개 변수

in
CharBuffer

입력 문자 버퍼

out
ByteBuffer

출력 바이트 버퍼

endOfInput
Boolean

true 호출자가 지정된 버퍼에 있는 입력 문자 이외의 추가 입력 문자를 제공할 수 없는 경우에만

반품

종료 이유를 설명하는 코더 결과 개체

특성

예외

인코딩 작업이 이미 시작되었거나 이 인코딩 프로세스에 더 이상 입력이 필요하지 않은 경우

메서드가 EncodeLoop(CharBuffer, ByteBuffer) throw된 BufferUnderflowException 경우 또는 BufferUnderflowException.

설명

지정된 입력 버퍼에서 가능한 한 많은 문자를 인코딩하여 결과를 지정된 출력 버퍼에 기록합니다.

버퍼는 현재 위치에서 시작하여 읽고 기록합니다. 최대 Buffer#remaining in.remaining() 문자가 읽혀지고 최대 Buffer#remaining out.remaining() 바이트가 기록됩니다. 버퍼의 위치는 읽은 문자와 쓴 바이트를 반영하도록 진행되지만 해당 표시 및 제한은 수정되지 않습니다.

이 메서드는 입력 버퍼에서 문자를 읽고 출력 버퍼에 바이트를 쓰는 것 외에도 종료 이유를 설명하는 개체를 반환 CoderResult 합니다.

<ul>

<li>

CoderResult#UNDERFLOW 는 가능한 한 많은 입력 버퍼가 인코딩되었음을 나타냅니다. 추가 입력이 없으면 호출자는 인코딩 작업의 다음 단계로 진행할 수 있습니다. 그렇지 않으면 추가 입력을 사용하여 이 메서드를 다시 호출해야 합니다.

</li>

<li>

CoderResult#OVERFLOW 는 출력 버퍼에 더 이상 문자를 인코딩할 공간이 충분하지 않음을 나타냅니다. 이 메서드는 버퍼#남은 남은 바이트가 더 많은 출력 버퍼를 사용하여 다시 호출해야 합니다. 이 작업은 일반적으로 출력 버퍼에서 인코딩된 바이트를 드레이닝하여 수행됩니다.

</li>

<li>

CoderResult#malformedForLength 잘못된 형식의 입력 결과는 잘못된 형식의 입력 오류가 감지되었음을 나타냅니다. 형식이 잘못된 문자는 입력 버퍼의(증가될 수 있음) 위치에서 시작합니다. 형식이 잘못된 문자의 수는 결과 개체의 CoderResult#length() length 메서드를 호출하여 확인할 수 있습니다. 이 경우는 이 인코더 CodingErrorAction#REPORT의 #onMalformedInput 잘못된 형식의 작업이 있는 경우에만 적용됩니다. 그렇지 않으면 잘못된 형식의 입력이 요청된 대로 무시되거나 바뀝니다.

</li>

<li>

CoderResult#unmappableForLength unmappable-character 결과는 적용할 수 없는 문자 오류가 검색되었음을 나타냅니다. 적용할 수 없는 문자를 인코딩하는 문자는 입력 버퍼의(증가될 수 있음) 위치에서 시작합니다. 이러한 문자의 수는 결과 개체의 CoderResult#length() length 메서드를 호출하여 확인할 수 있습니다. 이 경우는 이 인코더 CodingErrorAction#REPORT의 #onUnmappableCharacter 적용할 수 없는 동작인 경우에만 적용됩니다. 그렇지 않으면 요청된 대로 적용할 수 없는 문자가 무시되거나 바뀝니다.

</li>

</ul>

어쨌든 이 메서드를 동일한 인코딩 작업에서 다시 호출하는 경우 입력 버퍼에 남아 있는 문자를 유지하여 다음 호출에 사용할 수 있도록 주의해야 합니다.

매개 변수는 endOfInput 호출자가 지정된 입력 버퍼에 포함된 것 이상으로 추가 입력을 제공할 수 있는지 여부를 이 메서드에 조언합니다. 추가 입력을 제공할 가능성이 있는 경우 호출자는 이 매개 변수를 전달 false 해야 합니다. 추가 입력을 제공할 가능성이 없으면 호출자가 전달 true되어야 합니다. 그것은 잘못되지 않습니다, 그리고 사실 그것은 매우 일반적이다, 하나의 호출을 전달 false 하고 나중에 더 이상 입력이 실제로 사용할 수 없다는 것을 발견. 그러나 일련의 호출에서 이 메서드의 최종 호출은 항상 전달 true 되어 나머지 인코딩되지 않은 입력이 잘못된 형식으로 처리되도록 하는 것이 중요합니다.

이 메서드는 메서드를 호출하고 #encodeLoop encodeLoop , 결과를 해석하고, 오류 조건을 처리하고, 필요에 따라 다시 호출하여 작동합니다.

에 대한 java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean)Java 설명서

이 페이지의 일부는 만들고 공유한 작업을 기반으로 하며 에 설명된 조건에 따라 사용됩니다.

적용 대상