});「サーブレットでテキストファイルから読み込みを行う」「サーブレットでテキストファイルに書き込みを行う」では、FileReader/FileWriter(BufferedReader/BufferedWriter)クラスを用いたファイルの読み書きについてご紹介しました。これらのクラスを用いた場合、テキストファイルの文字コードはシステムデフォルトの文字コードが使用されていると自動的に判定されてしまいます。Windows環境であれば、自動的にShift_JISと見なされてしまうわけです。実際には異なる文字コードのファイルを読み込みたい、書き込みたいというケースもあるでしょう。その場合には、FileReaderクラスの代わりにFileInputStream/InputStreamReaderクラスを、FileWriterクラスの代わりにFileOutputStream/OutputStreamWriterクラスを、それぞれ用いる必要があります。解説FileInputStream/InputStreamReaderクラス、またはFileOutputStream/OutputStreamWriterクラスを使用した場合にも、異なるのはファイルを開く個所の記述だけです。いずれの場合もバッファリング機能を持つBufferedReader/BufferedWriterクラスを介すので、実際の読み込み(書き込み)処理の部分はなんら変わりありません。BufferedWriter(objOsr,10);InputStreamReader/OutputStreamWriterクラスは、いずれもバイトデータとしてファイルを読み込むためのクラスです。バイトデータとして取得したデータを、InputStreamReader/OutputStreamWriterクラスで文字列に再構成しているというわけです。上の例を見てもお分かりのように、InputStreamReader/OutputStreamWriterクラスでは文字データを構成する際に使用する文字エンコーディングを指定することができるので、さまざまな文字コードに対応できるというわけです。メールマガジンをご購読ください。申し込みページへITmediaはアイティメディア株式会社の登録商標です。