Создать весь путь автоматически при записи в новый файл


хочу написать новый файл с FileWriter. Я использую его так:

FileWriter newJsp = new FileWriter("C:userDesktopdir1dir2filename.txt");

теперь dir1 и dir2 В настоящее время не существует. Я хочу, чтобы Java создавал их автоматически, если они еще не существуют. На самом деле Java должен настроить весь путь к файлу, если он еще не существует.

как я могу этого достичь?

5 192

5 ответов:

что-то типа:

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

начиная с Java 1.7 вы можете использовать файлы.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 чтобы справиться со всеми этими головными болями.

Edit: например, используйте приведенный ниже код для записи в файл, этот метод будет "проверять и создавать родительский каталог, если он не существует".

openOutputStream(File file [, boolean append])