Создать весь путь автоматически при записи в новый файл - PullRequest
217 голосов
/ 14 мая 2010

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

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

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

Как мне этого добиться?

Ответы [ 5 ]

387 голосов
/ 14 мая 2010

Что-то вроде:

File file = new File("C:\\user\\Desktop\\dir1\\dir2\\filename.txt");
file.getParentFile().mkdirs();
FileWriter writer = new FileWriter(file);
124 голосов
/ 19 октября 2013

Начиная с Java 1.7 вы можете использовать Files.createFile:

Path pathToFile = Paths.get("/home/joe/foo/bar/myFile.txt");
Files.createDirectories(pathToFile.getParent());
Files.createFile(pathToFile);
26 голосов
/ 14 мая 2010

Использование 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);
15 голосов
/ 14 мая 2010

Использование File.mkdirs().

3 голосов
/ 11 апреля 2013

Используйте FileUtils , чтобы справиться со всеми этими головными болями.

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

openOutputStream(File file [, boolean append]) 
...