【发布时间】:2018-07-17 00:59:09
【问题描述】:
我正在尝试在特定目录中创建大量文件。如果目录不存在,那么它应该创建目录并在其中创建一堆文件。
无论我的程序在哪里运行,它应该创建一个"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
}
}
【问题讨论】:
-
File#mkdirs将是我的第一个建议 -
我还可以考虑查看
File(String, String)和File(File, String) 构造函数来构建路径 -
我已经在使用
File#mkdirs,但忘记在我的代码中提及。编辑了我的问题以添加缺少的部分。 -
如果你创建一个目录A,你可能无法创建一个名为A的文件。您可能只想制作文件夹到文件,但不包括文件
-
@user1234 不!您必须单独创建目录,首先是
File parent = new File("files");和parent.mkdirs();然后File file = new File(parent, entry.getKey());以创建对要写入的文件的引用
标签: java file fileoutputstream bufferedwriter