
Javaの基本的なファイル操作方法を簡単にご紹介していきます。
主に以下の方法に関して解説します。
➊ファイルの作成方法
➋ファイルの削除方法
➌ファイルのコピー方法
➍ファイルの移動方法
➎ファイルの権限変更
➏ファイルの読み書き(別記事紹介)
シンプルなプログラムを紹介するので、ソースはコピペで使えると思います。
それでは本題に入っていきます。
空ファイルを作成する方法です。
// 引数に作成したいファイルのパス指定
File file = new File("/tmp/testFile.txt");
// ファイルを作成
file.createNewFile();
作成したいファイルのパスを引数に指定して、Fileクラスを生成します。
その後「createNewFile」メソッドを呼び出すだけです。
createNewFileメソッドは、すでに作成しようとしたファイルが存在した場合は、何も処理せずに終了します。
しかし、業務などで使う時は、ファイルが存在しなければ、ファイル作成するという処理になることが多いです。空ファイルを作ることは少ないですが。
File file = new File("/tmp/testFile.txt");
try {
// ファイルが存在するかチェックする
if (!file.exists()) {
// ファイルが存在しない場合、ファイルを作成する
file.createNewFile();
} catch (IOException e) {
// 例外処理
}
「exists」メソッドを使うと、ファイルが存在するかチェックできます。
存在した場合は「true」そうでなければ「false」が返ります。
もしファイルの作成と同時にファイルに書き込み処理をしたい場合は
2-2.
ファイルの読み込み・書き込み(別記事)参照
File file = new File("/tmp/testFile.txt");
// ファイルを削除する
file.delete();
「delete」メソッドを呼び出すだけでOKです。わかりやすいですよね。
このメソッドは、存在しないファイルパスを指定して、実行しても例外は起きませんので、ご安心を。
Path from = Paths.get("/tmp/testFile.txt");
Path to = Paths.get("/test/testFile.txt");
try {
// from⇒toへファイルをコピーする
Files.copy(from, to);
} catch(IOException e){
// 例外処理
}
「from」パスのファイルを「to」パスにコピーしています。
サンプルはtmp⇒testフォルダへのコピーです。
※コピー先のフォルダが存在しない場合はエラーとなるので注意。
ソースは「java.nio.file」パッケージを使っています。具体的には、Javaで以下をimport。
import java.nio.file.Files;
import
java.nio.file.Path;
import java.nio.file.Paths;
ちなみに、コピー先のパスにファイルがすでに存在していた場合は、例外が発生しますので注意。
「getFileName」メソッドを使うことで、パスからファイル名を取り出せます。
例えば、fromのパスから(/tmp/testFile.txt)ファイル名を取り出すときは、こうです。
// fromのパスからファイル名「testFile.txt」を取得
Path to = Paths.get("/test/" + from.getFileName());
Path from = Paths.get("/tmp/testFile.txt");
Path to = Paths.get("/test/testFile.txt");
try {
// from⇒toへファイルを移動する
Files.move(from, to);
} catch(IOException e){
// 例外処理
}
コピー処理とソースはほぼ一緒です。
「copy」メソッドが「move」メソッドに変わっただけです。
こちらもfrom ⇒ toへファイルを移動しています。
こちらもコピーと同様で、移動先に同じファイル名がすでに存在していた場合は、例外が発生しますので注意。
File file = new File("/tmp/testFile.txt");
// 実行権限を与える
file.setExecutable(true);
// 読み取り権限を与える
file.setReadable(true);
// 書き込み権限を与える
file.setWritable(true);
上のように、Fileクラスを使用して、許可(拒否)したい権限のメソッドを呼び出します。
ファイルの実行権限 : setExecutable
ファイルの読み込み権限 : setReadable
ファイルの書き込み権限 : setWritable
権限を与える場合は「true」、権限を取り除きたい場合は「false」を指定します。
File file = new File("/tmp/testFile.txt");
System.out.println("ファイルの実行権限 : " + file.canExecute());
System.out.println("ファイルの読み込み権限 : " + file.canRead());
System.out.println("ファイルの書き込み権限 : " + file.canWrite());
実行結果が以下です。権限がある場合は「true」、権限がない場合は「false」が返却されます。
ファイルの実行権限 : true
ファイルの読み込み権限 : true
ファイルの書き込み権限 : true
こちらはいろいろと方法があるので、別記事に書きました。良かったら参考にしてみて下さい。
ファイル読み込み方法
【Java】ファイル読み込み方法7選と速度比較【1億行読み込んで、最も速いのは?】ファイル書き込み方法
【Java】ファイル書き込み方法5選と速度比較【何が一番はやいのか】今回はJavaでのファイル操作方法をご紹介してみました。
私が紹介した方法意外にも、ファイルを操作する方法は沢山あるのですが、比較的簡単な方法でまとめてみました。
・Fileクラスを使う
・java.nio.fileパッケージを使う
この二つを使うことで、ファイル操作はほとんど網羅できると思います。
今回載せている方法意外でも、色々とできることは沢山あるのえ、よかったら勉強してみてください。
私も勉強のお手伝いができるように、今後色々と書いていくつもりです!
最後まで読んでいただき、ありがとうございました!