Language

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ドキュメント。

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

適用対象

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)メソッドがBufferUnderflowExceptionまたはBufferUnderflowExceptionをスローした場合。

注釈

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

バッファーは、現在の位置から読み取られ、書き込まれます。 最大 Buffer#remaining in.remaining() 文字が読み取られ、最大 Buffer#remaining out.remaining() バイトが書き込まれます。 バッファーの位置は、読み取られた文字と書き込まれたバイト数を反映するように拡張されますが、それらのマークと制限は変更されません。

このメソッドは、入力バッファーから文字を読み取り、バイトを出力バッファーに書き込むだけでなく、 CoderResult オブジェクトを返して終了の理由を説明します。

<ul>

<li>

CoderResult#UNDERFLOW は、可能な限り多くの入力バッファーがエンコードされていることを示します。 それ以上入力がない場合、呼び出し側はエンコード操作の次の手順に進むことができます。 それ以外の場合は、このメソッドをさらに入力して再度呼び出す必要があります。

</li>

<li>

CoderResult#OVERFLOW は、それ以上の文字をエンコードするための領域が出力バッファーに不足していることを示します。 このメソッドは、より多くの Buffer#remaining バイトを含む出力バッファーを使用して再度呼び出す必要があります。 これは通常、エンコードされたバイトを出力バッファーからドレインすることによって行われます。

</li>

<li>

CoderResult#malwareedForLength の形式が正しくない入力結果は、不正な入力エラーが検出されたことを示します。 形式が正しくない文字は、入力バッファーの (インクリメントされる可能性がある) 位置から始まります。結果オブジェクトの CoderResult#length() length メソッドを呼び出すことによって、形式が正しくない文字の数が決まる場合があります。 このケースは、このエンコーダーの #onMalformedInput 形式が正しくないアクションが CodingErrorAction#REPORTされている場合にのみ適用されます。それ以外の場合は、要求に応じて無効な入力が無視または置換されます。

</li>

<li>

CoderResult#unmappableForLength unmappable-character の結果は、マップできない文字エラーが検出されたことを示します。 マップできない文字をエンコードする文字は、入力バッファーの (インクリメントされる可能性がある) 位置から始まります。このような文字数は、結果オブジェクトの CoderResult#length() length メソッドを呼び出すことによって決定できます。 このケースは、このエンコーダーの #onUnmappableCharacter 適用できないアクションが CodingErrorAction#REPORTされている場合にのみ適用されます。それ以外の場合は、要求に応じて、適用できない文字は無視または置換されます。

</li>

</ul>

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

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

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

Javaドキュメント。

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

適用対象