FileJava中的类包含利用布尔值来指示正在执行的操作的成功的方法.所述方法的用户需要在每次调用时检查返回值.
以下是mkdir()说明要求的文件摘要:
public boolean mkdir()
假设其父项存在,创建此文件命名的目录.如果您还想创建缺少的父项,请使用mkdirs.
请注意,此方法在失败时不会抛出IOException.呼叫者必须检查返回值.
还有一种情况createNewFile()(甚至更奇怪)使用布尔值和抛出异常来表示成功:
public boolean createNewFile()抛出IOException
根据存储在此文件中的路径信息在文件系统上创建一个新的空文件.如果创建文件,则此方法返回true;如果文件已存在,则返回false.请注意,即使文件不是文件,它也会返回false(因为它是一个目录,比方说).
...
请注意,如果文件已存在,则此方法不会抛出IOException,即使它不是常规文件也是如此.呼叫者应始终检查返回值,并可能另外想要调用isFile.
现在,这看起来很不方便,因为用户必须预测两种错误情况而不是仅使用简单的try-catch块.
这个大惊小怪的原因是什么?
因为这是他们设计它的方式,二十多年前.如果您可以让开发人员离开他们的养老院并离开Zimmer框架,您可能会得到更好的答案.否则我们都只是在猜测.
但是,您不需要经常调用这些方法,因为这里的某些人似乎在想.例如,isFile()/exists()/delete()/createNewFile()在new FileInputStream(...)或之前都是冗余的new FileOutputStream(...),这将完全抛出您正在寻找的异常.File.exists()/delete()/createNewFile()在这些或相应的FileReader/Writer构造函数中的任何一个之前调用比无用的更糟糕,这是对时间和空间的积极浪费,做构造函数(或者更确切地说是构造函数调用的操作系统代码)必须重复的工作.我怀疑我File.createNewFile()20年来曾经使用过.
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |