0

我不断收到“找不到文件异常”,但我知道它就在那里!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);
    }
}
4

2 回答 2

2

文件有一些方法可以帮助你。

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

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

于 2012-07-27T15:30:37.573 回答
0

当你写:

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

如果一个文件不存在,则会创建一个文件,因此在调用 file.getAbsolutePath()) 时不会出现异常。

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

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

于 2012-07-27T16:07:13.290 回答