我正在尝试阅读位于" C:\ Users \ Siddharth \ Documents \ aarti \ yeh_vidhi_mangal.txt"的文件。以下代码表示文件存在
String filename = "C:\\Users\\Siddharth\\Documents\\aarti\\yeh_vidhi_mangal.txt";
File file = new File(filename);
System.out.println(file.exists());
但是当我尝试使用
打开文件时FileInputStream in = new FileInputStream(file);
抛出FileNotFoundException
。这是因为访问被拒绝了吗?我检查了文件权限,他们没事。
我也尝试过没有日食的工作。从命令行:
C:\Users\Siddharth\workspace\file_io_test\src>javac Foo.java Foo.java:16: error: unreported exception FileNotFoundException; must be caught o r declared to be thrown FileInputStream in = new FileInputStream(file); ^ 1 error
答案 0 :(得分:8)
根据FileInputStream
的文档,“如果指定的文件不存在,是一个目录而不是一个普通文件,或由于某些其他原因无法打开阅读然后抛出FileNotFoundException。“ (强调我的)文件可能被另一个应用程序锁定或使用。
file.canRead()
返回什么?
现在您已经使用更多数据更新了问题,我可以看到您误解了错误消息。错误是您正在调用抛出某种类型的异常的方法,并且您没有正确报告或处理异常。您可以为try
添加catch
/ FileNotFoundException
,也可以在方法声明中添加throws
,声明可以抛出FileNotFoundException
。
答案 1 :(得分:0)
尝试使用单斜杠而不是像
那样的双斜杠C:/User/Documents/your Filename.
并使用Backward Slash因为您的文件将继承在以下目录中 为ex:
写下这样的路径C:\User\Documents\Your Filename.