此行代码抛出FileNotFoundException。
InputStream inputstream = new FileInputStream("C:\\file.txt");
尽管文件“ file.txt”位于该位置。
这真的是完整的文件路径吗?最好检查一下。我也建议放置要由您的程序读取的文件,例如文本文件,图像等进入您项目的类路径,因此,在打包和导出文件时,文件路径不会被位于该路径上不存在该文件的其他人的PC所阻塞,等等。
尝试以下一个。
InputStream inputstream = new FileInputStream("C:"+File.separator+"file.txt");
更好的方法是
File file = new File("C:"+File.separator+"file.txt");
if(file.exists()) {
//Read the file
}
else {
System.out.println("File does not exist);
}
要确保文件在Windows中是否存在,请按windows button + r
,然后粘贴您提到的文件路径,然后按Enter键。如果文件在该位置,则会打开一个包含文件内容的记事本。
如果您100%确定该文件存在并且仍然得到FileNotFoundException
,则很可能您的用户或运行Java的用户没有访问此文件的权限(因为我使用的是德语Windows,因此该对话框是以德语显示,但正如您所看到的,“ Benutzer”(即“用户”)拥有读取和访问文件a.txt
的拒绝权限:
但是,这会导致FileNotFoundException并返回本地化错误消息:
Exception in thread "main" java.io.FileNotFoundException: C:\a.txt (Zugriff verweigert)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:131)
at java.io.FileInputStream.<init>(FileInputStream.java:87)
at Threadstuff.main(Threadstuff.java:50)
Zugriff verweigert的意思是“访问被拒绝”。如果那也不是问题,我想您应该发布完整的StackTrace。