FileWriter
で新しいファイルを書きたい。私はこれをこんな風に使っています:
FileWriter newJsp = new FileWriter("C:\\user\Desktop\dir1\dir2\filename.txt");
dir1
とdir2
は現在存在しません。まだ存在しない場合は、Javaでそれらを自動的に作成する必要があります。実際には、まだ存在しない場合、Javaはファイルパス全体を設定する必要があります。
どうすればこれを達成できますか?
何かのようなもの:
File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);
Java 1.7以降、Files.createFileを使用できます。
Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt");
Files.createDirectories(pathToFile.getParent());
Files.createFile(pathToFile);
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);
File.mkdirs()
を使用してください。
これらすべての頭痛に対処するには、 FileUtils を使用してください。
編集:例えば、ファイルに書き込むために以下のコードを使用して、このメソッドは「それが存在しないなら親ディレクトリをチェックして作成する」でしょう。
openOutputStream(File file [, boolean append])