我得到了这个例外:
java.io.FileNotFoundException: C:\...\filename.xml (The system cannot find the path specified)
使用此代码:
FileWriter fileWriter = new FileWriter(new File(path + date + time "filename.xml"));
BufferedWriter writer = new BufferedWriter(fileWriter);
writer.write("data");
存在路径,但需要创建“日期”和“时间”的目录。应用程序对目录具有完全权限。
有什么想法吗?
答案 0 :(得分:8)
问题是因为我正在创建一个用于编写文件的子目录。所以我目前有
中编写我的文件C:\example\
并希望在C:\example\<date>\<time>\<files>
在写作之前,您需要致电File#mkdirs()
。
File file = new File("C:/example/newdir/newdir/filename.ext");
file.mkdirs();
// ...
答案 1 :(得分:4)
请假设计算机正确且您错了。
并且,在这种情况下,您要写入的目录不会退出(或者没有权限这样做)。
System.getProperty("user.dir")
答案 2 :(得分:2)
代码对我有用。 (需要为要显示在文件中的文本添加writer.close()
。)
答案 3 :(得分:1)
您还需要将新创建的文件和文件夹路径转换为字符串。
File folder = new File("src\\main\\json\\", idNumber);
folder.mkdir();
if (!folder.exists()) {
try {
folder.createNewFile();
} catch (IOException ex) {
Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, ex);
}
}
...
...
FileOutputStream output = null;
File file;
String content = data.toString();
try {
String folder_location = folder.toString() + "\\";
String filename = "CurrentInfo";
file = new File(folder_location + filename.toString() + ".json");
output = new FileOutputStream(file);
if (!file.exists()) {
file.createNewFile();
}
byte[] content_in_bytes = content.getBytes();
output.write(content_in_bytes);
output.flush();
output.close();
} catch (IOException ex) {
Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, ex);
} finally {
try {
if (output != null) {
output.close();
}
} catch (IOException e) {
Logger.getLogger(JsonGeneration.class.getName()).log(Level.SEVERE, null, e);
}
}
}
答案 4 :(得分:1)
对我有用的东西:项目所在的文件夹名称中有一个空格。我用连字符(-)替换了空格。现在,文件的相对路径没有空格(%20)。这种变化对我有用。希望它可以帮助某人。