当我们不小心对目录当做文件操作时候,系统会抛出异常,具体异常信息如下:
Exception in thread "main" java.io.FileNotFoundException: C:\logs\flink-lib (拒绝访问。),这个异常信息相对说的有点笼统,有时候当我们没有权限操作某一文件时候也会报错:"拒绝访问",所以这个需要我们具体根据实际问题解决,看看到底是文件不存在还是没有权限!
报错代码如下:
BufferedReader br =new BufferedReader(new FileReader(new File("C:\\logs\\dir"))); //注意dir是目录
当把目录作为文件操作时候,报错:Exception in thread "main" java.io.FileNotFoundException: C:\logs\flink-lib (拒绝访问。)
br.readLine(); //对目录操作
当我们操作一个不存在的文件时候,也会报FileNotFoundException异常,但是这个异常信息比较具体:
java.io.FileNotFoundException: C:\logs\flink-lib\java.txt (系统找不到指定的文件。)
异常代码如下:
BufferedReader br =new BufferedReader(new FileReader(new File("C:\\logs\\flink-lib\\java.txt")));
//当操作不存在的文件时候,报错:java.io.FileNotFoundException: C:\logs\flink-lib\java.txt (系统找不到指定的文件。)
br.readLine();
总结:
对于这个FileNotFoundException异常其实没有什么困惑,但是容易被误解复杂化错误的就是第一条异常信息:Exception in thread "main" java.io.FileNotFoundException: C:\logs\flink-lib (拒绝访问。)。比如有时候在Windows下,文件在C盘中,有时候由于权限问题的确操作系统不允许我们访问,但不总是这样!所以当出现这个问题时候第一步还是排除一下File实例到底是对象还是目录!或者也可以使用Java Api判断一下!