Java 为什么FileWriter不创建新文件?FileNotFoundException

Java 为什么FileWriter不创建新文件?FileNotFoundException,java,file-io,filewriter,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)

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

创建文件时使用连接不会添加必要的路径分隔符

File file = new File(WORKSPACE_PATH, fname);
这可能会奏效:

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

如果
工作区路径
末端没有分隔符,则需要添加分隔符(Windows:
\
和Unix:
/
,可以使用
文件.separator
获取系统的分隔符),手动创建带有其父目录的文件可能会有所帮助

如果
WORKSPACE\u路径的末尾没有分隔符,请尝试此操作:

File file = new File(WORKSPACE_PATH + File.separator + fname);
并将其添加到
fw=newfilewriter(文件)之前


你在用什么系统?对不起,吵闹的家伙。我的版本错了
git pull
修复了它。事实上,问题在于工作区路径。这应该重新打开,这是google上的第一个结果,引用的问题是权限,而不是目录创建。我想使用
路径
API添加一个答案。他确实提到用于追加的打开很好。在那一行抛出一个
IOException
。IOException消息的详细信息是什么?从我所看到的,这应该很好-你能打印完整的
工作区路径+fname
,并确认它正试图在正确的位置创建它?基本上就是你想做的。你怎么知道他的
工作区路径
不包含分隔符?正如他所说,append工作正常,这意味着文件的路径没有问题,我忘了说,如果
WORKSPACE\u PATH
已经有一个>或者您可以使用双参数表单:
新文件(WORKSPACE\u PATH,fname)
file.mkdirs(); // If the directory containing the file and/or its parent(s) does not exist
file.createNewFile();