【Java】FileWriterクラスを使ってテキストファイルを書き込む!

テキストファイルを書き込むにはFileWriterクラスを使用します。

FileWriterクラスは、テキストファイルを書き込むクラスとなります。

そのため、BufferedWriterクラスをセットで使用すると、書き込み処理の効率が上がるので、FileWriterクラスを使用する場合はBufferedWriterクラスを組み合わせて使用しましょう。

今回はFileWriterクラスを使って、テキストファイルの書き込みを行います。

また、Java7から使用できるようになったFileクラスのwriteメソッドを使って、テキストファイルを書き込む方法についても紹介していきます。

FileWriterクラスとは

FileWriterクラスとは、テキストファイルを書き込むためのクラスで、テキストファイルの内容を元にした処理などを行うために使用します。
また、ファイルは文字のストリームで書き込まれます。

FileWriterクラスの書き方

FileWriterクラスの構文は下記となります。

FileWriterクラスをインポートすることで、FileWriterクラスで準備されているメソッドが使用できるようになります。

また、BufferedWriterクラスを使用すると、書き込み処理の効率が上がるので、FileWriterクラスを使用する場合はBufferedWriterクラスもインポートしておきましょう。

テキストファイルを書き込むサンプルコード

ファイル/ディレクトリの名前を変更するサンプルコードを紹介します。

Main.java

出力結果

・北海道、東北地方、関東地方
北海道
青森県岩手県秋田県宮城県山形県福島県
茨城県栃木県群馬県埼玉県千葉県東京都神奈川県

Main.javaを実行すると、「C:¥study」以下にWriter1.txtとWriter2.txtが作成されます。

また、FileWriterクラスによってWriter1.txtとWriter2.txtの内容は、
・北海道、東北地方、関東地方
北海道
青森県岩手県秋田県宮城県山形県福島県
茨城県栃木県群馬県埼玉県千葉県東京都神奈川県
が書き込まれています。

NIO.2(Filesクラス)でテキストファイルを書き込む場合

NIO.2とはJava7で導入された「java.nio.file」パッケージとそのサブパッケージとを合わせたものであり、NIO.2のFilesクラスを使用することでとても簡単にファイル処理を行うことができます。

そのため、Filesクラスででテキストファイルを書き込むにはwiterメソッドを使用します。

writeメソッドのパラメータとして第1パラメータに書き込み先パス、第2パラメータにchar配列を指定すると、char配列が表す文字列をファイルに書き込みます。

また、第2パラメータに「Iterable」インスタンスを、第3パラメータに文字コードを指定すると、「Iterable」インスタンス内のすべての要素を、改行文字を追加して結合し、ファイル書き込みます。

Main.java

出力結果

・北海道、東北地方、関東地方
北海道
青森県岩手県秋田県宮城県山形県福島県
茨城県栃木県群馬県埼玉県千葉県東京都神奈川県

Main.javaを実行すると、「C:¥study」以下にWriter3.txtとWriter4.txtが作成されます。

また、Writer3.txtとWriter4.txtの内容は、
・北海道、東北地方、関東地方
北海道
青森県岩手県秋田県宮城県山形県福島県
茨城県栃木県群馬県埼玉県千葉県東京都神奈川県
が書き込まれています。

今回のポイント

FileWriterでテキストファイル書き込む

テキストファイルに書き込むにはFileWriterクラスを使用する。

⚫︎ 文字出力ストリームであるFileWriterクラスでテキストファイルにデータを書き込む

⚫︎ 「FileWriter」インスタンスを作成する際に、第2パラメータに「true」を指定することで、既存のファイルに追加して書き込みを行うことができる

⚫︎ 「FileWriter」クラスを使用する場合は、「BufferedWriter」クラスを使用してバッファリングすることで、書き込み速度の効率をアップさせることができる

⚫︎ BuffderdWriterクラスのwriteメソッドでファイルの書き込みを行う
(BufferedWriterクラスのnewLineメソッでシステムプロパティである「line.separator」の改行文字を書き込む)

⚫︎ BufferedWriterクラスのcloseメソッドで「BufferedWriter」インスタンス と「FileWriter」インスタンスのリソースを解放する

⚫︎ PrintWriterクラスを使用することで、書式を指定しての書き込みや、改行文字を追加しての書き込みを行うことができる

⚫︎ PrintWriterクラスで通常で書き込みた場合はprintメソッド、書式を指定しての書き込みたい場合はprintfメソッド、改行文字を追加して書き込みたい場合はprintlnメソッドを使用する

⚫︎ Filesクラスのwriteメソッドでもテキストファイルを書き込むことができる

関連記事

FileReaderクラスを使ってテキストファイルを読み込む方法についてはこちらをご参考ください。

Writer
壷井

壷井

株式会社flyhawkの壷井です。フライテックメディア事業部でのメディア運営・ライター業務なども担当。愛機はMac Book AirとThinkPad。好きな言語:swift、JS系(Node.js等)。好きなサーバー:AWS。受託開発やプログラミングスクールの運営をしております。ご気軽にお問い合わせください。

最新の案件情報

フリーランスエンジニアの案件探し