こんにちは!エンジニアの中沢です。
Javaにはファイルの書き込みを行うFileWriterクラスがあります。
この記事では、
・FileWriterクラスとは
・writeメソッドの使い方
・テキストファイルを作成する方法
という基本的な内容から、
・既存のファイルに追加して書き込む方法
・読み取り専用などの権限の確認と変更をする方法
などの応用的な使い方に関しても解説していきます。
今回はこれらの方法を覚えるために、java.io.FileWriterクラスのさまざまな使い方をわかりやすく解説します!
なお、Javaの記事については、こちらにまとめています。
FileWriterクラスとは
初めにFileWriterクラスについて解説します。
FileWriterクラスは文字を書き込むために使います。
FileWriterクラスを使って新しいテキストファイルを作ったり、すでに存在するテキストファイルに追加で文字を書き込むことができます。
テキストファイルを作成する方法
ここではFileWriterクラスを使って、指定した文字列が書かれたテキストファイルを作成する方法を解説します。
初めにFileクラスのコンストラクタの引数に、作成するファイルのパスを指定します。
次にFileWriterクラスのコンストラクタの引数に、Fileクラスのオブジェクトを指定します。
FileWriterクラスのwriteメソッドで、文字列を書き込みます。
最後にcloseメソッドでファイルを閉じて完了です!
テキストファイルを作成する方法を、次のプログラムで確認してみましょう。
import java.io.File; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) throws Exception { try { File file = new File("c:\\Sample\\Test.txt"); FileWriter filewriter = new FileWriter(file); filewriter.write("abc"); filewriter.close(); System.out.println("テキストファイルの作成に成功しました"); } catch (IOException e) { e.printStackTrace(); } } }
[実行結果]
テキストファイルの作成に成功しました
テキストファイルを作成する方法が確認できました!
すでに同名のファイルが存在する場合には上書き保存されて、元のファイルが削除されるので注意してください。
既存のファイルに追加して書き込む方法
ここではFileWriterクラスを使って、既存のファイルに追加して書き込む方法を解説します。
ファイルが読み取り専用になっていると書き込めないので、権限をFileクラスのcanWriteメソッドで確認します。
読み取り専用の場合には、FileクラスのsetWritableメソッドで権限を変更します。
既存のファイルの最後に追加して書き込むために、FileWriterクラスのコンストラクタの2つ目の引数にtrueを追加します。
既存のファイルに追加して書き込む方法を次のプログラムで確認してみましょう。
import java.io.File; import java.io.FileWriter; import java.io.IOException; public class Main { public static void main(String[] args) throws Exception { try { File file = new File("c:\\Sample\\Test.txt"); // 書き込み権限の確認 if (!file.canWrite()) { // 書き込み可能に変更 file.setWritable(true); } // 2つ目の引数にtrueを追加 FileWriter filewriter = new FileWriter(file, true); filewriter.write("abc"); filewriter.close(); System.out.println("テキストファイルの作成に成功しました"); } catch (IOException e) { e.printStackTrace(); } } }
[実行結果]
テキストファイルの作成に成功しました
既存のファイルに追加して書き込む方法が確認できました!
追加で書き込む設定でファイルが存在しない場合には、新しくファイルが作成されます。
まとめ
いかがでしたか?
今回はFileWriterクラスを使ってテキストファイルを作成する方法について解説しました。
既存のファイルに追加して書き込む場合は、権限の確認と変更を忘れないように注意してくださいね。
もしテキストファイルの作成について忘れてしまったらこの記事を確認してください!