CharsetEncoder.Encode メソッド

定義

オーバーロード

Encode(CharBuffer)

1 つの入力文字バッファーの残りのコンテンツを新しく割り当てられたバイト バッファーにエンコードする便利なメソッド。

Encode(CharBuffer, ByteBuffer, Boolean)

指定された入力バッファーからできるだけ多くの文字をエンコードし、結果を指定された出力バッファーに書き込みます。

Encode(CharBuffer)

1 つの入力文字バッファーの残りのコンテンツを新しく割り当てられたバイト バッファーにエンコードする便利なメソッド。

[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 [マップ不可] は、入力バッファーの現在位置にある Unicode 文字シーケンスを同等のバイト シーケンスにマップできないことを意味します。

エンコード操作中に他の例外が発生した場合は 。

注釈

1 つの入力文字バッファーの残りのコンテンツを新しく割り当てられたバイト バッファーにエンコードする便利なメソッド。

このメソッドは、エンコード操作全体を実装します。つまり、このエンコーダーをリセットし、指定された文字バッファー内の文字をエンコードし、最後にこのエンコーダーをフラッシュします。 そのため、エンコード操作が既に進行中の場合は、このメソッドを呼び出さないでください。

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 if、および if の場合にのみ、呼び出し側は、指定されたバッファー内の文字を超える追加の入力文字を提供できません

戻り値

終了の理由を記述する coder-result オブジェクト

属性

例外

エンコード操作が既に開始されている場合、またはこのエンコードプロセスでこれ以上入力が必要ない場合は 。

メソッドが EncodeLoop(CharBuffer, ByteBuffer) または BufferUnderflowExceptionをスローしたBufferUnderflowException場合。

注釈

指定された入力バッファーからできるだけ多くの文字をエンコードし、結果を指定された出力バッファーに書き込みます。

バッファーは、現在の位置から読み取られ、書き込まれます。 ほとんどの 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 の メソッドを呼び出すことによって決定できます。 このケースは、このエンコーダーの #onUnmappableCharacter 適用できないアクションが である CodingErrorAction#REPORT場合にのみ適用されます。それ以外の場合、要求に応じて、マップできない文字は無視されるか置き換えられます。

</李>

</ul>

いずれの場合も、このメソッドを同じエンコード操作で再び取り込む場合は、次の呼び出しで使用できるように、入力バッファーに残っている文字を保持するように注意する必要があります。

パラメーターは endOfInput 、呼び出し側が指定された入力バッファーに含まれるそれ以上の入力を提供できるかどうかをこのメソッドにアドバイスします。 追加の入力を指定する可能性がある場合は、呼び出し側がこのパラメーターに渡す false 必要があります。さらに入力を提供する可能性がない場合は、呼び出し側が を渡す true必要があります。 誤りではなく、実際には、1 つの呼び出しを渡 false し、後でそれ以上の入力が実際に使用できなかったことを発見することは非常に一般的です。 ただし、一連の呼び出しでこのメソッドの最後の呼び出しが常に渡 true されるため、残りの未エンコード入力は形式が正しくないものとして扱われます。

このメソッドは、 メソッドを呼び出し #encodeLoop encodeLoop 、その結果を解釈し、エラー条件を処理し、必要に応じて再び取り込むことで機能します。

java.nio.charset.CharsetEncoder.encode(java.nio.CharBuffer, java.nio.ByteBuffer, boolean)Java ドキュメント。

このページの一部は、によって作成および共有された作業に基づく変更であり、に記載されている条件に従って使用されます。

適用対象