Java:是否可以打开文件进行写入,但如果文件已经存在则会爆炸?

Ben*_*Ben 1 java file-io

我想创建一个用于写入的文件,如果已存在具有给定名称的文件,则会获得异常.我正在寻找一个线程安全的实现,并希望在Java标准库中.我找到的最近的电话是这样的:

FileOutputStream fos = new FileOutputStream("/some/file/path.txt");
Run Code Online (Sandbox Code Playgroud)

但这将截断具有相同名称的现有文件.是否有任何方法会抛出异常或以其他方式返回错误,如果已存在同名文件?

Sam*_*nen 8

尝试使用File类和createNewFile.

以下解决方案是线程安全的

File file = new File("/some/file/path.txt");
if (file.createNewFile()) {
  // Succesfully created a new file
  FileOutputStream fos = new FileOutputStream(file);
  try {
    // Do something with outputstream
  } finally {
    try { fos.close(); } catch (IOException exception) { }
  }
}
Run Code Online (Sandbox Code Playgroud)