java 已存在的文件_Java新的File()表示FileNotFoundException但文件存在

小编典典

在许多情况下FileNotFoundException,运行时可能会引发a 。

命名文件不存在。原因可能有很多,其中包括:

路径名完全错误

路径名看起来正确,但实际上是错误的,因为它包含您没有注意到的非打印字符(或同形文字)

路径名是相对的,相对于正在运行的应用程序的实际当前目录,它不能正确解析。通常发生这种情况是因为应用程序的当前目录不是您期望或假定的目录。

该文件的路径已损坏;例如,路径的目录名称不正确,路径上的符号链接已损坏或路径组件之一存在权限问题。

命名文件实际上是一个目录。

由于某种原因,无法打开指定文件进行读取。

好消息是,问题将不可避免地是上述之一。只是确定哪一个问题。您可以尝试以下操作:

调用file.exists()将告诉您是否存在具有给定名称/路径名的文件系统对象。

调用file.isDirectory()将测试它是否是目录。

调用file.canRead()将测试该文件是否可读。

此行将告诉您当前目录是什么:

System.out.println(new File(".").getAbsolutePath());

此行将以某种方式打印出路径名,从而更容易发现意外的前导或训练性空白:

System.out.println("The path is '" + path + "'");

在输出中查找意外的空格,换行符等。

事实证明您的示例代码有一个编译错误。

我运行您的代码时并没有处理Netbeans的投诉,只是得到以下异常消息:

线程“主”中的异常java.lang.RuntimeException:无法编译的源代码-未报告的异常java.io.FileNotFoundException; 必须被抓住或宣布被抛出

如果将代码更改为以下代码,它将解决该问题。

public static void main(String[] args) throws FileNotFoundException {

File file = new File("scores.dat");

System.out.println(file.exists());

Scanner scan = new Scanner(file);

}

说明:Scanner(File)构造函数被声明为引发FileNotFoundException异常。(碰巧扫描程序无法打开文件。)现在FileNotFoundException是一个已检查的异常。这意味着可能引发异常的方法必须捕获异常或在throws子句中声明它。上面的修复采用了后一种方法。

2020-03-06

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值