コード変換を行うクラスです。
クラス宣言
public class Converter extends java.lang.Object
クラス説明
本クラスは、コンストラクタで指定されたコード変換ポリシーと文字エンコーディングに従って、文字ストリームに対してコード変換を行います。コード変換の実行には、convertメソッドを使用します。
本クラスは、コード変換を行ったデータに関する統計情報を保持します。統計情報は、convert メソッドでコード変換を実行することで更新されます。
内部クラス
Converterクラスで使用する入力データの文字エンコーディング形式を表現するクラスです。詳しくは、“4.2.2 Converter.EncodingInクラス”を参照してください。
Converterクラスで使用する出力データの文字エンコーディング形式を表現するクラスです。詳しくは、“4.2.3 Converter.EncodingOutクラス”を参照してください。
コード変換の結果を保持するクラスです。詳しくは、“4.2.4 Converter.Resultsクラス”を参照してください。
コード変換の統計情報を保持するクラスです。詳しくは、“4.2.5 Converter.Statisticsクラス”を参照してください。
コンストラクタ
public Converter(ConversionPolicy cp, Converter.EncodingIn encIn, Converter.EncodingOut encOut) throws java.lang.NullPointerException, com.fujitsu.charsetmanager.textprocessing.PolicyFormatException, com.fujitsu.charsetmanager.textprocessing.EncodingException
コード変換ポリシーと入出力のエンコーディング形式を指定して、Converterを構築します。
コード変換ポリシーを指定します。ConversionPolicyクラスのインスタンスを指定します。詳しくは、“4.2.6 ConversionPolicyクラス”を参照してください。
入力ストリームの文字エンコーディング形式を指定します。Converter.EncodingInクラスのオブジェクトを指定します。詳しくは、“4.2.2 Converter.EncodingInクラス”を参照してください。
出力ストリームの文字エンコーディング形式を指定します。Converter.EncodingOutクラスのオブジェクトを指定します。詳しくは、“4.2.3 Converter.EncodingOutクラス”を参照してください。
パラメタにNULLが指定されています。
未サポートのコード変換ポリシーが指定されています。
コード変換ポリシーに適合しない文字エンコーディング形式が指定されています。
メソッド
public Converter.Results convert(java.io.InputStream in, java.io.OutputStream out) throws com.fujitsu.charsetmanager.textprocessing.EncodingFormatException, com.fujitsu.charsetmanager.textprocessing.EncodingException, com.fujitsu.charsetmanager.textprocessing.IllegalInputDataException, com.fujitsu.charsetmanager.textprocessing.ConvertingException, java.lang.NullPointerException, java.io.IOException
入力ストリームに対してコード変換を実行し、出力ストリームに出力します。本メソッドを呼び出すと、getStatisticsメソッドで返されるコード変換統計情報が、コード変換結果に応じて更新されます。
シフトコードを使用するエンコーディングにおいては、入力ストリーム、出力ストリームともに初期シフト状態を半角文字として扱います。initialize メソッドを使用することで、シフト状態を初期化することができます。
入力ストリームを指定します。
出力ストリームを指定します。
コード変換結果を含むResultsクラスのインスタンスを返却します。詳しくは、“4.2.4 Converter.Resultsクラス”を参照してください。
入力ストリーム中の文字のエンコーディング形式に誤りがあります。コード変換ポリシーで、例外発生を指定した場合に発生します。
文字コードのバイト列へのエンコーディング中に問題が発生しました。
setPrecedingBytesメソッドで入力されたバイト列の処理中に問題が発生しました。または、入力ストリーム中に、コード変換の続行が不能となるデータを検出しました。本例外の発生後に、再度コード変換を行う場合は、initializeメソッドを呼び出してConverterの内部情報を初期化する必要があります。
変換元コードから変換先コードへの変換処理中に問題が発生しました。
パラメタにNULLが指定されました。
ストリーム入出力にエラーがありました。
public Converter.Statistics getStatistics()
コード変換統計情報を返します。本メソッドが返す情報は、Converterクラスのインスタンスが生成されてからの累計で、initializeメソッドまたはinitStatisticsメソッドが呼び出されるまで初期化されません。
コード変換統計情報を含むStatisticsクラスのインスタンスを返却します。詳しくは、“4.2.5 Converter.Statisticsクラス”を参照してください。
public void initialize()
Converterの内部情報を初期化します。本メソッドを呼び出すことで、新たなストリームの処理を開始することができます。getStatisticsメソッドで返される統計情報、および先行バイト列も初期化されます。
public void initStatistics()
コード変換統計情報を初期化します。本メソッドで初期化されるのは、getStatisticsメソッドで返される統計情報だけで、その他の情報は初期化されません。
public void setPrecedingBytes(byte[] bytes)
指定したバイト列を先行バイト列として設定します。例えば、シフトコードがついていないJEFのストリームで、シフト状態を指定してから変換を行いたい場合に、シフトコードを先行バイト列として設定します。
設定した先行バイト列は、convertメソッドで指定した入力ストリームの前に付加されて処理されます。convertメソッドの呼び出しによって、先行バイト列はクリアされます。また、bytesパラメタにNULLを指定した場合、すでに設定されている先行バイト列はクリアされます。
先行バイト列の処理中に不正エンコーディングを検出、または変換処理が停止するような現象が発生した場合、convertメソッドがIllegalInputDataExceptionを発生させます。
先行バイト列を指定します。nullを指定した場合、すでに設定されている先行バイト列はクリアされます。