Javaプログラムで頻出処理の1つにファイル出力処理が挙げられます。
本記事では、Javaでのファイル出力の方法についてサンプルコードを交えながらご紹介していきたいと思います。
目次
Javaでのファイル出力の基本を理解しよう
Javaに限らずプログラムでファイル出力処理を行いたい場合には原則として「ファイルを指定する(開く)」「ファイルに書き込む」「ファイルを閉じる」の3段階の処理が必要となります。
Javaでは「FileWriter」クラスを用いてファイル出力を行う方法についてまずはご紹介していきます。
ファイルを指定する(開く)
まずFileWriterクラスのインスタンスを作成するタイミングで、出力先のファイル名を指定します。
第二引数に「true」「false」を指定することが可能で、「true」は追記モード、「False」は上書きモードでのファイル出力となります。
FileWriter インスタンス名 = new FileWriter(出力するファイルのパス, 書き込みモード);
ファイルに書き込む
ファイルへの書き込みにはFileWriterクラスから提供されている「write」メソッドを利用します。
引数に書き込みたい文字列を設定することでFileWriterクラスのインスタンス時に指定した書き込みモードでの入力が可能です。
インスタンス名.writer(書き込みたい文字列);
ファイルを閉じる
ファイルへの書き込み処理が終わったら最後にファイルを閉じる処理を忘れてはいけません。
FileWriterクラスから提供されている「close」メソッドを使用してファイルを閉じます。
インスタンス名.close();
ファイル入出力処理を行う場合は例外処理も記述しておこう
ファイル入出力を行う場合、必ずセットで行うことになるのが例外処理です。
FileWriterクラスからインスタンスを生成する際など「IOException」と呼ばれるエラーが発生する可能性があるため、下記のようにtry~catch文を記述するようにします。
try { // ファイルを指定する(開く)処理 // ファイルに書き込む処理 // ファイルを閉じる処理 } catch(IOException ex) { // 例外処理 }
Javaのファイル出力をFileWriterクラスを利用してやってみよう!
ここからは実際にサンプルコードでJavaのファイル出力の方法をご紹介していきます。
FileWriterクラスを利用することでファイル出力が簡単に行えますのでぜひ試してみてください。
指定ファイルが存在しない状態でファイル出力処理を試してみよう
まずはFileWriterクラスで指定するファイルが存在しない状態で書き込み処理を行うサンプルです。
上記画像では「sample.txt」というファイルが存在しないことを確認しています。
下記のサンプルコードを「Main.java」というファイルで作成します。
import java.io.*; public class Main { public static void main(String[] args) throws Exception { FileWriter fw = null; try { fw = new FileWriter("./sample.txt", true); fw.write("サンプルファイル作成"); } catch(IOException ex) { ex.printStackTrace(); } finally { if(fw != null) { fw.close(); } } } }
実行した結果が下記の画像の通りとなります。
「sample.txt」というファイルが新たに作成されていることが分かります。
ファイルの中身を「cat」コマンドで確認するとプログラムで指定した「”サンプルファイル作成”」の文言が記載されていることがご確認頂けます。
指定ファイルが存在する状態でファイル出力処理を試してみよう
上記サンプルとほとんど同じ内容で出力する文言のみ変更した下記のサンプルファイルを用意します。
「Main.java」
import java.io.*; public class Main { public static void main(String[] args) throws Exception { FileWriter fw = null; try { fw = new FileWriter("./sample.txt", true); fw.write("文言追加"); } catch(IOException ex) { ex.printStackTrace(); } finally { if(fw != null) { fw.close(); } } } }
1つ前のサンプルで作成した「sample.txt」ファイルが存在する状態で実行してみましょう。
下記の画像の通り、「sample.txt」に文言が追加されていることが確認出来ます。
上書きモードでファイル出力を試してみよう
今度はFileWriterクラスの第二引数を「false」に変更してファイル出力を行うサンプルコードです。
ここでも前回まで使用していた「sample.txt」は消さずに残した状態で実行してみます。
「Main.txt」
import java.io.*; public class Main { public static void main(String[] args) throws Exception { FileWriter fw = null; try { fw = new FileWriter("./sample.txt", false); fw.write("上書きモードのテストです。"); } catch(IOException ex) { ex.printStackTrace(); } finally { if(fw != null) { fw.close(); } } } }
実行した結果が下記の画像の通りとなります。
前回までの内容が削除されて、上書きモードで指定した内容のみが表示されていることがご確認頂けます。
さいごに:Javaのファイル出力は専用クラスを利用することで簡単に行える
本記事では、Javaのファイル出力について、基本的な考え方とFileWriterクラスを利用した実際の出力方法をサンプルコードを交えてご紹介してきました。
一見、初心者プログラマーの方にとって外部ファイルとの連携は複雑に思えるかも知れませんがJavaには専用のクラスが用意されているため簡単にファイル出力処理が行えます。
今回ご紹介した内容は最も基本的な内容となっており、FileWriterクラス以外にもPrintWriterクラスやFileOutputStreamクラスなど様々な機能をJavaでは利用することが可能です。