Java FileNotFoundException即使文件存在

Java FileNotFoundException即使文件存在,java,Java,我试图读取位于C:\Users\Siddharth\Documents\aarti\yeh\u vidhi\u mangal.txt的文件。下面的代码表示该文件存在 String filename = "C:\\Users\\Siddharth\\Documents\\aarti\\yeh_vidhi_mangal.txt"; File file = new File(filename); System.out.println(file.exists()); 但

我试图读取位于C:\Users\Siddharth\Documents\aarti\yeh\u vidhi\u 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。这是因为访问被拒绝吗?我检查了文件权限,它们很好

我也尝试过在没有eclipse的情况下工作。从命令行:


根据的文档,如果命名文件不存在,是目录而不是常规文件,或者由于某些其他原因无法打开以进行读取,则会引发FileNotFoundException。该文件可能被锁定或被其他应用程序使用

file.canRead返回什么


现在,您已经用更多数据更新了问题,我可以看出您误解了错误消息。错误在于,您正在调用引发特定类型异常的方法,并且您没有正确地报告或处理该异常。您可以为FileNotFoundException添加try/catch,也可以在方法声明中添加throws,声明可以抛出FileNotFoundException。

根据文档,如果命名文件不存在,则为目录而不是常规文件,或者由于某些其他原因,无法打开进行读取,然后引发FileNotFoundException。该文件可能被锁定或被其他应用程序使用

file.canRead返回什么


现在,您已经用更多数据更新了问题,我可以看出您误解了错误消息。错误在于,您正在调用引发特定类型异常的方法,并且您没有正确地报告或处理该异常。您可以为FileNotFoundException添加try/catch,也可以在方法声明中添加throws,声明可以抛出FileNotFoundException。

尝试使用单斜杠而不是双斜杠

C:/User/Documents/your Filename.
并使用反斜杠,因为您的文件将在以下目录中继承 为ex编写如下路径:

C:\User\Documents\Your Filename.

尝试使用单斜杠而不是双斜杠

C:/User/Documents/your Filename.
并使用反斜杠,因为您的文件将在以下目录中继承 为ex编写如下路径:

C:\User\Documents\Your Filename.


您可以将文件移动到C:drive并对其进行测试。yeh_vidhi_mangal.txt这是什么意思:?试着去掉路径中的双斜杠,除了C:\\@luxun NO!这将为您提供非法转义字符:所有目录名大小写都正确吗?1。C:/Users/Siddharth/Documents/aarti/yeh_vidhi_mangal.txt给我的是相同的错误2。我尝试将文件移动到c:,但也无法修复它。我正在使用win7和Eclipse4。如何从命令行编译和执行以检查是否存在eclipse问题?您可以将文件移动到C:drive并对其进行测试。yeh_vidhi_mangal.txt这是什么意思:?试着去掉路径中的双斜杠,除了C:\\@luxun NO!这将为您提供非法转义字符:所有目录名大小写都正确吗?1。C:/Users/Siddharth/Documents/aarti/yeh_vidhi_mangal.txt给我的是相同的错误2。我尝试将文件移动到c:,但也无法修复它。我正在使用win7和Eclipse4。如何从命令行编译和执行以检查是否存在eclipse问题?file.canRead返回true。@morpheus try luck with canExecutefile.canRead返回true。@morpheus try luck with canExecuteNO!这将导致非法转义字符错误:如果要在字符串文字中写入\,则必须同时写入\\,这是不必要的。正向斜杠将用于Java中的路径名。。。甚至在窗户上;看不!这将导致非法转义字符错误:如果要在字符串文字中写入\,则必须同时写入\\,这是不必要的。正向斜杠将用于Java中的路径名。。。甚至在窗户上;看见