Javaで文字コード・改行コードを指定してファイル操作する方法

java

javaでは、実行環境に応じたデフォルトの文字コード・改行コードを用いてファイルを出力するようにコーディングすることができます。
そのことにより、実行環境毎でコーディングを変更せずとも、実行環境に合わせた文字コード・改行コードを採用することができます。

しかし、他の環境向けのファイルを出力するような場合は、実行環境のデフォルトの文字コード・改行コードが採用されると困ることがあります。
そのような場合、FileOutputStreamクラスを用いれば、指定した文字コード・改行コードを採用することができます。

なお、FileWriterクラスを用いる場合は、setPropertyで実行環境のデフォルトを変更しても文字コードは変更できませんでした。
公式ドキュメント(https://docs.oracle.com/javase/jp/8/docs/api/java/io/FileWriter.html)では「文字ファイルを書き込むための簡易クラスです。このクラスのコンストラクタは、デフォルトの文字エンコーディングとデフォルトのbyteバッファのサイズが許容できることを前提としています。」と書かれており、まさにその通りの挙動となっています。

【テストコード】

【標準出力】

【ファイル出力結果】


入門書では文字コードや改行コードについて触れられることは少ないと思うのですが、システム間でファイル連携を行う場合は必ずと言って良いほど文字コードや改行コードを意識する必要があります。
システム間連携でなくとも、モジュールとモジュールの間でファイルを連携する時にも意識する必要がある場合があります。
入門書には出てこなくとも実務での重要性は高いと思います。

来週からも、実務で役立つ情報を中心に提供していきたいと思います!

コメント

タイトルとURLをコピーしました