Java 使用文件对象初始化FileInputStream时获取FileNotFoundException

Java 使用文件对象初始化FileInputStream时获取FileNotFoundException,java,filenotfoundexception,fileinputstream,bufferedinputstream,Java,Filenotfoundexception,Fileinputstream,Bufferedinputstream,我正在尝试使用文件对象初始化FileInputStream对象。我在线路上遇到FileNotFound错误 fis = new FileInputStream(file); 这很奇怪,因为我多次使用相同的方法打开这个文件来执行regex 我的方法如下: private BufferedInputStream fileToBIS(File file){ FileInputStream fis = null; BufferedInputStream bis =null;

我正在尝试使用文件对象初始化FileInputStream对象。我在线路上遇到FileNotFound错误

fis = new FileInputStream(file);
这很奇怪,因为我多次使用相同的方法打开这个文件来执行regex

我的方法如下:

private BufferedInputStream fileToBIS(File file){

    FileInputStream fis = null;
    BufferedInputStream bis =null; 
    try {
        fis = new FileInputStream(file);
        bis = new BufferedInputStream(fis);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }   
    return bis;
}
java.io.FileNotFoundException:C:\dev\server\tomcat6\webapps\sample site(访问被拒绝)
在java.io.FileInputStream.open(本机方法)
位于java.io.FileInputStream。(未知源)
位于java.io.FileInputStream。(未知源)
位于controller.ScanEditRegions.fileToBIS(ScanEditRegions.java:52)
位于controller.ScanEditRegions.tidyHTML(ScanEditRegions.java:38)
位于controller.ScanEditRegions.process(ScanEditRegions.java:64)
位于controller.ScanEditRegions.visitAllDirsAndFiles(ScanEditRegions.java:148)

在controller.Manager.main(Manager.java:10)

中,这与操作系统中的文件权限设置有关。您已以没有特定目录访问权限的用户身份启动java进程。

您可能希望确保(按顺序):

  • 该文件已存在
  • 该文件不是目录
  • 您或Java进程具有打开该文件的权限
  • 另一个进程没有锁定文件(很可能,因为您可能会收到标准IOException而不是FileNotFoundException)

  • 从你贴在帖子上的stacktrace判断,我猜你没有阅读该文件的权限

    File类允许您对文件执行有用的检查,其中一些检查:

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

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

    我认为您正在执行eclipse或任何java IDE中的语句,并且IDE工作区中也存在目标文件。由于Eclipse无法读取同一工作区中的目标文件,因此出现错误。您可以在命令提示符下运行代码。它不应该通过任何异常。

    文件在那里吗,您有权限问题吗?问题是传入了一个目录(以及许多文件)我也发现了同样的问题,我的错误是02-10 14:18:25.367:W/System.err(365):java.io.FileNotFoundException:/storage/simulated/0/bhanuааааааааа。txt:open失败:enent(没有这样的文件或目录)02-10 14:18:25.367:W/System.err(365):在libcore.io.IoBridge.open(IoBridge.java:409)02-10 14:18:25.367:W/System.err(365):在java.io.FileInputStream。(FileInputStream.java:78)原始海报已经接受了答案并解释了问题的根本原因-他传递的是目录路径而不是文件路径。请确保在回答历史问题之前检查其他人写的内容。我也发现了相同的问题,我的错误是02-10 14:18:25.367:W/System.err(365):java.io.FileNotFoundException:/storage/emulated/0/bhanuааааааааааааааааааааааааааааааа