为什么FileWriter没有创建新文件? FileNotFoundException异常

时间:2014-08-13 16:45:53

标签: java file-io filewriter

所以我有一个代码片段,如下所示。我试图找出它抛出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? 
}

3 个答案:

答案 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);
}