我试图用Java实现以下的操作,我不知道如何:如何在Java中创建文件,只有当文件不存在时才能创建文件?
/*
* write data (Data is defined in my package)
* to a file only if it does not exist, return success
*/
boolean writeData(File f, Data d)
{
FileOutputStream fos = null;
try
{
fos = atomicCreateFile(f);
if (fos != null)
{
/* write data here */
return true;
}
else
{
return false;
}
}
finally
{
fos.close(); // needs to be wrapped in an exception block
}
}
是否有存在已经是我可以用atomicCreateFile()
功能?
编辑:呃哦,我不确定File.createNewFile()是否足以满足我的需求。如果我打电话给f.createNewFile()
,然后在它返回的时间和我打开文件进行写作之间,其他人删除了该文件,该怎么办?有没有一种方法可以创建文件并打开它来写入或锁定它,一举一动?我需要担心这个吗?
卫生署!我怎么错过了? :/ 谢谢。我的思想一直在C++领域。 – 2009-10-12 18:33:59
根据您的编辑更新了我的答案 – 2009-10-12 18:48:14
好的,谢谢。好吧,这听起来像我必须仔细考虑特殊情况。 (例如。如果createNewFile()成功,但打开一个文件通道并获得文件锁定失败) – 2009-10-12 18:53:43