【发布时间】:2016-02-14 19:29:49
【问题描述】:
我正在尝试使用 opencsv 库,但是我很早就遇到了 FileReader 无法找到我用来测试的 csv 的问题。
我有以下代码:
import java.io.File;
import java.io.FileReader;
public class Test {
public static void main(String[] args) {
File f = new File("demo.csv");
if(f.exists() && !f.isDirectory()) {
System.out.println("File exists");
}
else {
System.out.println("File does not exist");
}
FileReader reader = new FileReader("demo.csv");
}
}
我在 FileReader 上收到 FileNotFoundException 错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problem:
Unhandled exception type FileNotFoundException at Test.main(Test.java:19)
尽管使用 f.exist 检查了文件是否存在于正确的目录中。做了很多搜索,找不到任何解释。
有人可以帮忙吗?
【问题讨论】:
-
您能否将您的示例更改为重现错误所需的最低限度?所以:转储
while-loop,添加f.exists()并最终删除对 opencsv 的依赖 -
@morido 我已经按照您的意思编辑了 OP。显然,当前的代码不会在 FileReader 上使用 FileNotFoundException 运行,但如果我注释掉该行,f.exists 会正确返回“文件存在”。即使我试图去一个绝对位置(可能我的格式错误)它仍然找不到它。
-
1.使用
System.getProperty("user.dir");检查您当前的工作目录 - demo.csv 必须驻留在该目录中才能使上述代码正常工作。 2.确保demo.csv的文件权限正确,这也会导致FileNotFoundException被抛出。 -
请发布整个异常和消息。猜测您没有该文件的读取权限,但如果没有异常文本,则无法明确回答问题。
-
按照指示检查工作目录,文件存在那里并且设置了读/写权限。完整的错误消息如下,从中添加并没有多大用处我不认为:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: Unhandled exception type FileNotFoundException at Test.main(Test.java:19)不知道还能尝试什么。在某个时候,我会看看我是否在不同的系统上得到相同的结果。这可能与 FileReader 不喜欢那个特定的 csv 文件本身有关吗?我也试试。
标签: java compiler-errors filereader filenotfoundexception