Я пытаюсь реализовать следующую операцию на 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()
?
edit: Ой, я не уверен, что File.createNewFile () достаточно для моих нужд. Что если я позвоню f.createNewFile()
, а затем между временем, когда он вернется, и я открою файл для записи, кто-то другой удалил файл? Есть ли способ, как я могу создать файл и открыть его для записи + заблокировать, все одним махом? Нужно ли беспокоиться об этом?