web-dev-qa-db-ja.com

新しいファイルに書き込むときに自動的にフルパスを作成する

FileWriter で新しいファイルを書きたい。私はこれをこんな風に使っています:

FileWriter newJsp = new FileWriter("C:\\user\Desktop\dir1\dir2\filename.txt");

dir1dir2は現在存在しません。まだ存在しない場合は、Javaでそれらを自動的に作成する必要があります。実際には、まだ存在しない場合、Javaはファイルパス全体を設定する必要があります。

どうすればこれを達成できますか?

215
user321068

何かのようなもの:

File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);
384
Jon Skeet

Java 1.7以降、Files.createFileを使用できます。

Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt");
Files.createDirectories(pathToFile.getParent());
Files.createFile(pathToFile);
124
cdmihai

File.mkdirs()を使用してください。

File dir = new File("C:\\user\\Desktop\\dir1\\dir2");
dir.mkdirs();
File file = new File(dir, "filename.txt");
FileWriter newJsp = new FileWriter(file);
26
Armand

File.mkdirs() を使用してください。

15
Marcelo Cantos

これらすべての頭痛に対処するには、 FileUtils を使用してください。

編集:例えば、ファイルに書き込むために以下のコードを使用して、このメソッドは「それが存在しないなら親ディレクトリをチェックして作成する」でしょう。

openOutputStream(File file [, boolean append]) 
3
kakacii