ファイルのコピーや必要なファイルの一覧を取得したい
JavaではFileクラスを使用して、さまざまなファイル操作ができるメソッドが用意されています。Fileクラスを使用することでファイルの読み込みや書き込み、コピーなどの操作が可能になります。
そのため、ファイル操作の基本的な機能は、Fileクラスのメソッドで可能と言っても良いでしょう。
この記事では、そんなファイルクラスについて、以下の内容で解説していきます。
- Fileクラスの基本的な使い方
- ファイルの読み込み・書き込み
- ファイルをコピーする方法
- ファイルの一覧を取得する方法
- ファイルの区切り文字を指定する方法
今回はそんなFileクラスの使い方について、わかりやすく解説します!
なお、Javaの記事については、こちらにまとめています。
JavaのFileクラスとは
JavaにおけるFileクラスは、ファイルやディレクトリの作成・削除、ファイルの読み込み・書き込み、ファイルのチェック処理、実行権の確認など、ファイルに関するさまざまなメソッドが用意されています。
また、Fileクラスはファイルの読み込み・書き込みの際に使用されるFileReaderクラス、FileWriterクラスなどのオブジェクト生成時の引数としても使用されます。
ファイルクラスを使用するには「import java.io.File」のパッケージを指定します。
Fileクラスの宣言は以下のように記述します。
File file = new File("ファイル名");
インスタンスの引数にはファイル名を指定します。
絶対パス・相対パスを指定することが可能で、ファイルのパスから記述することができます。
ファイルクラスの各メソッドを使用するには、「file.メソッド名」の形式が基本です。
以下にFileクラスの使用例として、existsメソッドを使用して、ファイルが存在するか確認する簡単なサンプルを紹介します。
import java.io.File; public class Main { public static void main(String[] args) { // ファイルを指定する File file = new File("/Users/Shared/java/java.txt"); // ファイルの存在確認 if(file.exists()){ System.out.println("ファイルが存在します。"); }else{ System.out.println("ファイルが存在しません。"); } } }
実行結果 ファイルが存在します。
紹介したサンプルでは作成したFileクラスのオブジェクトに対して、existsメソッドを使用してファイルの存在有無を確認しました。このようにnew演算子を使用して、Fileクラスのオブジェクトを生成しておけば、Fileクラスで用意されているさまざまなメソッドを使用することが可能です。
次項より、Fileクラスのさまざまなメソッドについて、紹介しています。
JavaのFileクラスの基本的な使い方
ここではFileクラスで用意されているさまざまなファイル関連の機能を紹介します。
Fileクラスの基本的な機能は、以下の記事でも詳しく解説しています。
ファイルやディレクトリを作成
ファイルを作成するためにはFileクラスのcreateNewFileメソッドを使用します。
createNewFileメソッドはboolean型の値を返します。
public boolean createNewFile()
createNewFileメソッドは、以下のように記述します。
File file = new File("ファイル名"); file.createNewFile();
Fileクラスのインスタンスの引数には作成するファイル名を指定ます。
ファイルのディレクトリを作成するには、mkdirメソッドを使用します。
mkdirはboolean型の値を返します。
public boolean mkdir()
mkdirは、以下のように記述します。
File dir = new File("ディレクトリ名"); dir.mkdir();
Fileクラスのインスタンスの引数には作成するディレクトリ名を指定します。
ファイルやディレクトリの作成方法の詳細や更新日時を取得する方法については、以下の記事で詳しく解説しています!
絶対パスや相対パスを指定して、ファイルを作成する方法や、ファイルのパスを取得する方法については、以下の記事で詳しく解説しています!
ファイルを削除する
不要なファイルを削除するには、Fileクラスのdeleteメソッドを使用します。
deleteメソッドは、boolean型の値を返します。
public boolean delete()
deleteメソッドは、以下のように記述します。
File file = new File("ファイル名"); file.delete();
Fileクラスのインスタンスの引数には削除するディレクトリ名を指定します。
ファイルの削除方法の詳細やディレクトリの削除方法、再帰的に削除する方法については、以下の記事で詳しく解説しています!
ファイルの存在を確認
Fileクラスは、指定したファイルが存在しないと例外が発生するため、事前に目的のファイルが存在するか、確認しておいたほうが良いと言えます。ファイルやフォルダの存在有無を確認するにはexistsメソッドを使用します。
existsメソッドはboolean型の値を返します。
public boolean exists()
existsメソッドは以下のように記述します。
File file = new File("ファイル名"); file. exists();
existsメソッドの使い方や詳細、Java7で追加されたjava.nio.file.Filesクラスのexistsメソッドの使い方については、以下の記事で詳しく解説しています!
ファイルを読み込む方法
ファイルを読み込むためには、FileReaderクラスやFileInputStreamクラスを使用します。
FileReaderクラスを使用すると、テキストファイルの内容を1文字ずつ取得することができます。
File file = new File("ファイル名"); FileReader filereader = new FileReader(file);
FileInputStreamクラスを使用すると、ファイルの内容はバイトストリームで読み込まれます。
FileInputStream fs = new FileInputStream("ファイル名");
そんなファイルの読み込み方法については、以下の総まとめ記事で詳しく解説しています!
ファイルに書き込む方法
ファイルに文字列を書き込むためには、書き込むファイルを指定するFileWriterクラスと、ファイルの書き込み操作などを行うPrintWriterクラスを使用します。
FileWriter file = new FileWriter("ファイル名"); PrintWriter pw = new PrintWriter(new BufferedWriter(file));
また、バイナリデータをファイルに書き込む場合には、BufferedOutputStreamクラスを使用します。BufferedOutputStreamクラスのオブジェクト生成時には、インスタンスの引数にFileOutputStreamクラスを指定します。
BufferedOutputStream bf = new BufferedOutputStream (new FileOutputStream("ファイル名"));
ファイルに書き込む方法の詳細については、以下の記事で詳しく解説しています!
ファイルをコピーする方法
ファイルをコピーするためには、java.io.FileクラスのFileInputStreamクラスとFileOutputStreamクラスを使用する方法があります。
また、FileChannelクラスのtransferToメソッドを使用することでもファイルをコピーすることが可能です。
transferTo(long position, long count, WritableByteChannel target)
ファイルをコピーする詳細については、以下の記事で詳しく解説しています!
ファイルを移動する方法
ファイルを移動するには、renameToメソッドを使用します。ファイル名を同じにして、フォルダ名を変更することで移動することになります。
import java.io.File; public class Main { public static void main (String[] args) { File fileIn = new File("/Users/Shared/java/javaIn.txt"); File fileOut = new File("/Users/Shared/tmp/javaIn.txt"); if (fileIn.renameTo(fileOut)) { System.out.println("移動しました"); } else { System.out.println("移動に失敗しました"); } } }
実行結果:
移動しました
ファイルの一覧を取得する方法
指定したディレクトリに含まれるファイルやディレクトリの一覧を取得したい場合は、FileクラスのlistFilesメソッドを使用します。
listFilesメソッドは、配列の値を返します。
public File[] listFiles()
listFilesメソッドを使用すれば、Fileクラスのオブジェクトに、指定したパスに存在するファイルやディレクトリが格納されます。
File dir = new File("ディレクトリ"); File[] list = dir.listFiles();
ファイルやディレクトリの一覧を取得する詳細については、以下の記事で詳しく解説しています!
ファイルの区切り文字
ファイルセパレータ(区切り文字)とは、ファイルやディレクトリの指定で、ディレクトリとファイルを区切るときに使用する、「¥」「」「/」などの文字のことを指します。
ファイルの区切り文字はOSごとに指定方法が異なります。
そんな区切り文字の詳細や区切り文字を置換する方法については、以下の記事で詳しく解説しています!
ファイル操作総まとめ
ファイル操作の詳しい使い方はこちらの記事で詳しく解説しているので、ぜひ確認してください。
まとめ
ここでは、Fileクラスを使用してファイルの作成・削除、読み込み・書き込みなどさまざまなファイル操作について解説しました。JavaではFileクラスを使用して、さまざまなファイル操作が可能です。
もし、Fileクラスの使い方を忘れてしまったら、この記事を思い出してくださいね。