我一直收到“文件未找到异常”,但我知道它就在那里! 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);
}
}
答案 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文档说明如下: “如果文件存在但由于某种原因无法访问,它们也会被这些构造函数抛出”。 所以也许您应该共享文件本身的一些信息。