Java中的File
类包含使用 boolean 值指示执行操作是否成功的方法。每次调用返回值时,所述方法的用户都需要检查返回值。
以下是从 mkdir()
摘录的文档片段,其中阐明了要求:
createNewFile()
也存在一种情况(甚至很奇怪),它同时使用 boolean 值和引发异常的异常来表示成功:
现在,这似乎充其量是不便的,因为用户将不得不预期两种错误情况,而不仅仅是使用简单的try-catch
块。
大惊小怪的背后是什么原因?
最佳答案
因为那是二十多年前他们设计的方式。如果您可以让开发人员脱离退休之家,离开他们的Zimmer框架,您可能会得到更好的答案。否则,我们都只是猜测。
但是,您不需要像这里的某些人所想的那样经常调用这些方法。例如,isFile()/exists()/delete()/createNewFile()
在new FileInputStream(...)
或new FileOutputStream(...)
之前都是多余的,它们将完全抛出您要查找的异常。在这些构造函数或相应的File.exists()/delete()/createNewFile()
构造函数之前调用FileReader/Writer
会比无用的情况更糟糕,这是时间和空间的浪费,这需要重复执行构造函数(或构造函数调用的操作系统代码)。我怀疑我已经使用File.createNewFile()
20年了。