我正在尝试在特定目录中创建大量文件。如果目录不存在,那么它应该创建目录并在其中创建一堆文件。
如果我的程序正在运行,它应该创建一个"files"
目录,如果它不存在,并且在这个"files"
文件夹中,我想在其中创建一堆文件。
我有下面的代码,但看起来它正在创建一堆文件夹,而不是一个文件夹和该文件夹中的所有文件。我做错了什么?
for (Entry<String, String> entry : tasks.entrySet()) {
// looks like something is wrong here but can't figure out what wrong I am doing?
File file = new File("files/" + entry.getKey());
file.mkdirs();
try (BufferedWriter writer =
new BufferedWriter(new OutputStreamWriter(new FileOutputStream(file),
StandardCharsets.UTF_8))) {
writer.write(entry.getValue());
} catch (IOException ex) {
// log error
}
}
答案 0 :(得分:0)
例如,您正在尝试创建文件C:\Stuff\Things\other.txt
使用您当前的代码,您可以创建文件夹C:\Stuff\Things\other.txt\
当您尝试写入文件moo.txt
时,它不能,因为您在其中放置了一个文件夹(...\other.txt\
)
相反,在编写文件(C:\Stuff\Things\
)
File file = new File(...);
file.getParentFile().mkdirs();
try(BufferedWriter ...