文件未找到发现异常 - 但我知道它在那里

时间:2012-07-27 15:26:09

标签: java

我一直收到“文件未找到异常”,但我知道它就在那里! File file = new File("C:\\A-small-practice.in");能够很好地找到该文件,但是当我尝试使用FileInputStream时,它会返回异常。

import java.io.*;

public class Solution {

    public static void main(String[] args) {

       File file = new File("C:\\A-small-practice.in");
       System.out.println(file.getAbsolutePath()); //prints C:\A-small-practice.in

       FileInputStream fstream = new FileInputStream(file);
    }
}

2 个答案:

答案 0 :(得分:2)

File有一些方法可以帮到你。

boolean canExecute();
boolean canRead();
boolean canWrite();
boolean exists();
boolean isFile();
boolean isDirectory();
boolean isAbsolute() 

例如,您可以检查:exists()&& isFile()&& canRead()并打印出更好的错误消息,具体取决于您无法读取文件的原因。

答案 1 :(得分:0)

当你写:

   File file = new File("C:\\A-small-practice.in");

如果一个文件不存在,将会生成一个文件,因此没有理由 你在调用file.getAbsolutePath())时得到一个异常。

但是如果文件不存在,它将抛出一个未找到的文件异常, 一旦您尝试打开非现有文件的输入流。 所以我的建议是尝试调用.exsits()。查看文件是否存在。

此外,文件未找到异常的java文档说明如下: “如果文件存在但由于某种原因无法访问,它们也会被这些构造函数抛出”。 所以也许您应该共享文件本身的一些信息。