FileInputStream抛出FileNotFoundException

时间:2019-11-16 18:56:43

标签: java file inputstream filenotfoundexception fileinputstream

此代码引发FileNotFoundException。

编辑:根据要求,我提供了完整的StackTrace。

import java.io.FileInputStream;
import java.io.InputStream;

public class ReadFile{
    public static void main(String[] args){
        InputStream inputstream = new FileInputStream("C:\\file.txt");
    }
}

尽管文件“ file.txt”位于该位置。我想按要求发布此屏幕快照,但是我不能,因为我至少需要10个信誉点。

3 个答案:

答案 0 :(得分:1)

如果您100%确定该文件存在并且仍然得到FileNotFoundException,则很可能是您的用户或运行Java的用户没有访问此文件的权限(因为我使用的是德语Windows该对话框是德语的,但是您可以看到“ Benutzer”(即“用户”)拥有读取和执行文件a.txt的权利:

enter image description here

但是,这会导致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。

我在评论中提到的另一个选项是文件夹和搜索选项->视图中的资源管理器选项(“查看”->“选项”)

enter image description here

(大致翻译为“隐藏已知扩展的扩展名”)

如果启用此选项,则资源管理器中的文件名将在视图中丢失其扩展名。这意味着它们显示为“文件”而不是“ file.txt”-有时会导致重命名文件时创建“ file.txt.txt”的错误。并且经常被用来欺骗用户以为他们打开了另一种文件(.pdf.exe),该文件主要由坏蛋使用。

答案 1 :(得分:0)

这真的是完整的文件路径吗?最好检查一下。 我也建议放置要由您的程序读取的文件,例如文本文件,图像等位于项目的类路径中,因此,在打包和导出文件时,文件路径不会被位于该路径上不存在该文件的其他人的PC所阻塞,等等。

This的答案建议您将文件的路径转换为符合Java的URL路径。

答案 2 :(得分:0)

尝试以下一个。

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键。如果文件在该位置,则会打开一个包含文件内容的记事本。

相关问题