ブログ

Java備忘録① ~ファイル入出力と文字コード~

2013年2月22日 09:12 | シスキュー技術部 | | 13,738 views
タグ: ,

このエントリーをはてなブックマークに追加
はてなブックマーク - Java備忘録① ~ファイル入出力と文字コード~
reddit にシェア
Pocket
LINEで送る

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」を使って云々かんぬんする必要があるワケですが・・・。
ま、便利なのも考えモノですね~、という初心者の感想ですです。

というわけで、今回はこれにて失礼。