Javaのフォルダとファイルの作成/削除/移動のサンプルです。
| 確認環境 ・Java 8 |
目次
- Filesクラス
- Pathsクラス - getメソッド
- 空フォルダを作成する(createDirectory)
- 空ファイルを作成する(createFile)
- ファイルを削除する(deleteIfExists)
- フォルダを削除する(deleteIfExists)
- フォルダを移動する(move)
- ファイルを移動する(move)
- 一時ファイルを作成する(createTempFile)
Filesクラス
- ファイルを操作するクラスです。
- Java7で導入されました。
- 以下はJava8 API仕様のFilesクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Files.html
Pathsクラス - getメソッド
| 1 public static Path get(URI uri) |
| 2 public static Path get(String first,String... more) |
- Pathオブジェクトを返すメソッドです。
- PathオブジェクトはFilesクラスのメソッドに指定します。
- 1は、引数にパスをセットします。戻り値はPathオブジェクトです。
- 2は、引数にパスとファイル名をセットします。戻り値はPathオブジェクトです。
- 以下はJava8 API仕様のPathsクラスのリンクです。
https://docs.oracle.com/javase/jp/8/docs/api/java/nio/file/Paths.html
空フォルダを作成する(createDirectory)
空フォルダを作成するサンプルです。
package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Test1 {
public static void main(String[] args) {
String dir = "E:\\Test5";
try {
if (!Files.isDirectory(Paths.get(dir))) {
Files.createDirectory(Paths.get(dir));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
10行目は、isDirectoryメソッドで指定のフォルダが存在していないことを確認しています。
11行目は、createDirectoryメソッドで指定のフォルダを作成しています。
空ファイルを作成する(createFile)
空ファイルを作成するサンプルです。
package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Test1 {
public static void main(String[] args) {
String dir = "E:\\Test5";
String filename = "test1.txt";
try {
if (!Files.exists(Paths.get(dir, filename))) {
Files.createFile(Paths.get(dir, filename));
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
11行目は、existsメソッドで指定のファイルが存在していないことを確認しています。
12行目は、createFileメソッドで指定のファイルを作成しています。
ファイルを削除する(deleteIfExists)
ファイルを削除するサンプルです。
package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Test1 {
public static void main(String[] args) {
String dir = "E:\\Test5";
String filename = "test1.txt";
try {
Files.deleteIfExists(Paths.get(dir, filename));
} catch (IOException e) {
e.printStackTrace();
}
}
}
11行目は、deleteIfExistsメソッドで指定のファイルが存在していないことを確認しています。
メソッド名にIfExitstsとあるようにファイルが存在する場合のみ削除処理を行います。
フォルダを削除する(deleteIfExists)
フォルダを削除するサンプルです。
package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Paths;
public class Test1 {
public static void main(String[] args) {
String dir = "E:\\Test5";
try {
Files.deleteIfExists(Paths.get(dir));
} catch (IOException e) {
e.printStackTrace();
}
}
}
10行目は、deleteIfExistsメソッドで指定のファイルが存在していないことを確認しています。
メソッド名にIfExitstsとあるようにファイルが存在する場合のみ削除処理を行います。
フォルダの中にファイルが存在した場合、フォルダを削除できません。
java.nio.file.DirectoryNotEmptyExceptionの例外が発生します。
フォルダを移動する(move)
フォルダを移動するサンプルです。
package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test1 {
public static void main(String[] args) {
String dir1 = "E:\\Test1\\sub1";
String dir2 = "E:\\Test2\\sub1";
Path from1 = Paths.get(dir1);
Path to1 = Paths.get(dir2);
try {
Files.move(from1, to1);
} catch (IOException e) {
e.printStackTrace();
}
}
}
sub1フォルダを移動させる処理です。
9行目は、"E:\\Test1\\sub1"というフォルダ構成です。
10行目は、この処理が実行されると"E:\\Test2\\sub1"になります。現状は、"E:\\Test2"の状態です。
16行目は、moveメソッドでsub1フォルダをfrom1からto1へ移動させています。
フォルダの中にファイルがあっても移動できます。
ファイルを移動する(move)
ファイルの移動のサンプルです。
package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test1 {
public static void main(String[] args) {
String dir1 = "E:\\Test1";
String dir2 = "E:\\Test2";
String filename = "\\test1.txt";
Path from1 = Paths.get(dir1+filename);
Path to1 = Paths.get(dir2+filename);
try {
Files.move(from1, to1);
} catch (IOException e) {
e.printStackTrace();
}
}
}
17行目は、moveメソッドでTest1フォルダのtest1.txtをTest2フォルダへ移動させています。
一時ファイルを作成する(createTempFile)
一時ファイルを作成するサンプルです。
package test1;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
public class Test1 {
public static void main(String[] args) {
String dir = "E:\\Test5";
try {
Path test1 = Files.createTempFile(Paths.get(dir),"abc","zzz");
System.out.println(test1 .toString());
} catch (IOException e) {
e.printStackTrace();
}
}
}
12行目は、createTempFileメソッドで一時ファイルを作成しています。2つめの引数がプレフィックス(ファイルの先頭につく文字)で3つめの引数がサフィックス(ファイルの最後につく文字)です。
このファイルは自動で削除されません。
以下は、上記コードを5回実行した状態です。5つのファイルが作成されています。

関連の記事