和歌山のプログラミング・システム開発ならシステムキューブ
「FileWriter」というテキストをファイルに書き出すクラスがあります。
Java初心者の僕は、なんとな~くこの「FileWriter」を使っていました。
それで問題なく動いていたからです。
が・・・。
この「FileWriter」、出力するファイルの文字コードセット指定ができないんですね~。
というか、OSのデフォルトのエンコード方式で自動変換されてしまいます。
文字コードを意識しないでいいという点は、一見便利なようにも思えますが、
かえって問題を引き起こす原因にもなりかねませんな~。
なので、普段から文字コードを意識してコーディングする方がよさそうですね。
というわけで、文字コードを指定する場合は、
「FileWriter」の代わりに「OutputStreamWriter」を使用するといいでしょう。
[java]
// FileOutputStreamオブジェクト生成(出力ファイルの指定)
FileOutputStream fo = new FileOutputStream("file.txt");
// OutputStreamWriterオブジェクト生成(文字コードの指定)
OutputStreamWriter ow = new OutputStreamWriter(fo, "UTF-8");
// 書き出す内容をセット
ow.write("Hello Work!!");
// ストリームの解放
ow.close();
fo.close();
[/java]
こんな感じでしょうか。
ちなみに、「FileWriter」と同じようにファイル読み込み手続きを簡略化した
「FileReader」というクラスも文字コードが指定できません。
代わりに「InputStreamWriter」を使って云々かんぬんする必要があるワケですが・・・。
ま、便利なのも考えモノですね~、という初心者の感想ですです。
というわけで、今回はこれにて失礼。