简体   繁体   中英

Java FileNotFoundException even though file exists

I am trying to read a file located at "C:\\Users\\Siddharth\\Documents\\aarti\\yeh_vidhi_mangal.txt". Following code indicates that file exists

String filename = "C:\\Users\\Siddharth\\Documents\\aarti\\yeh_vidhi_mangal.txt";
        File file = new File(filename);
        System.out.println(file.exists());

but when I try to open the file using

FileInputStream in = new FileInputStream(file);

a FileNotFoundException is thrown. Is this because access is denied? I checked file permissions and they are fine.

I have also tried working without eclipse. from the command line:

  C:\\Users\\Siddharth\\workspace\\file_io_test\\src>javac Foo.java Foo.java:16: error: unreported exception FileNotFoundException; must be caught o r declared to be thrown FileInputStream in = new FileInputStream(file); ^ 1 error 

According to the documentation for FileInputStream , "If the named file does not exist, is a directory rather than a regular file, or for some other reason cannot be opened for reading then a FileNotFoundException is thrown." (emphasis mine) The file may be locked or in use by another application.

What does file.canRead() return?


Now that you've updated your question with more data, I can see that you are misinterpreting the error message. The error is that you are calling a method which throws a certain type of exception and you are not properly reporting or handling the exception. You can either add a try / catch for FileNotFoundException or add a throws to your method declaration which states that FileNotFoundException can be thrown.

Try using single slash rather than double slash like

C:/User/Documents/your Filename.

and use Backward Slash Because your File is going to inherit in the following Directories so write the path like this for ex:

C:\User\Documents\Your Filename.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM