所以我有一个代码片段,如下所示。我试图找出它抛出FileNotFoundException的原因。
File file= new File (WORKSPACE_PATH+fname);
FileWriter fw;
if (file.exists())
{
fw = new FileWriter(file,true);//if file exists append to file. Works fine.
}
else
{
fw = new FileWriter(file);// If file does not exist. Create it. This throws a FileNotFoundException. Why?
}
答案 0 :(得分:3)
在创建文件时使用连接不会添加必要的路径分隔符。
File file = new File(WORKSPACE_PATH, fname);
答案 1 :(得分:3)
如果\
没有分隔符,则需要添加分隔符(Windows:/
和Unix:File.separator
,您可以使用WORKSPACE_PATH
获取系统的分隔符在其末尾,并使用其父目录手动创建文件可能会有所帮助。
如果WORKSPACE_PATH
在其末尾没有分隔符,请尝试此操作:
File file = new File(WORKSPACE_PATH + File.separator + fname);
并在fw = new FileWriter(file);
file.mkdirs(); // If the directory containing the file and/or its parent(s) does not exist
file.createNewFile();
答案 2 :(得分:0)
这可能有效:
File file= new File (WORKSPACE_PATH+fname);
FileWriter fw;
if (file.exists())
{
fw = new FileWriter(file,true);//if file exists append to file. Works fine.
}
else
{
file.createNewFile();
fw = new FileWriter(file);
}