我正在尝试使用绝对路径从文件系统读取文件但由于“FileNotFoundException”而失败,我不知道为什么
File file=new File("E:\\Directory\\File.txt");
byte[] buff=new byte[8];
FileInputStream fileIn=new FileInputStream(file.getAbsolutePath());
int n=fileIn.read(buff);
System.out.println(n);
答案 0 :(得分:0)
以下是一些可能导致此问题的事情:
目录和文件存在,但您遇到的是真正的路径名或您正在使用的路径名有问题:
实际错误发生在代码中的其他位置。
我还可以建议你这样试试:
File file = new File("E:/Directory/File.txt");
FileInputStream fileIn = new FileInputStream(file);
Java路径名处理应将“/”转换为适当的平台特定文件分隔符。 file
已经表示绝对路径,因此不需要调用file.getAbsolutePath()
。
答案 1 :(得分:0)
感谢您的帮助。我已经知道原因了。因为它可能会抛出异常,所以我应该在方法签名中添加异常,或者使用try / catch添加异常。 实际上,当您使用Intelli IDEA时,“Alt + Enter”可以帮助您找出您的代码有什么问题......
答案 2 :(得分:-1)
嗯,问题正如错误所述:
该文件不存在。即该路径中没有文件。您给构造函数的名称可能有误。 您可以通过以下方式检查文件是否存在:
File file=new File("E:\\Directory\\File.txt");
if(file.exists()){
//do things here
}
您还可以检查Windows资源管理器中是否存在该文件(假设您在PC上运行Windows)。如果找不到该文件,则说明问题所在。正如我所说,错误被抛出,因为没有该路径的文件。