使用File对象初始化FileInputStream时获取FileNotFoundException

Ank*_*kur 6 java filenotfoundexception bufferedinputstream fileinputstream

我试图使用File对象初始化FileInputStream对象.我在线上收到FileNotFound错误

fis = new FileInputStream(file);
Run Code Online (Sandbox Code Playgroud)

这很奇怪,因为我已经通过相同的方法打开这个文件多次执行正则表达式.

我的方法如下:

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;
}
Run Code Online (Sandbox Code Playgroud)

java.io.FileNotFoundException:C:\ dev\server\tomcat6\webapps\sample-site(拒绝访问)
    java.io.FileInputStream.open(本机方法)
    java.io.FileInputStream.(未知来源)
    java
    控制器上的controller.ScanEditRegions.process(ScanEditRegions.java:64)
    处于controller.ScanEditRegions.tidyHTML(ScanEditRegions.java:38)
    的controller.ScanEditRegions.fileToBIS(ScanEditRegions.java:52)
    处的.io.FileInputStream.(未知来源) . .ScanEditRegions.visitAllDirsAndFiles(ScanEditRegions.java:148)
    在controller.Manager.main(Manager.java:10)

Phi*_*ipp 10

根据您在帖子中粘贴的堆栈跟踪来判断,我猜您没有权限读取该文件.

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

boolean canExecute();
boolean canRead();
boolean canWrite();
boolean exists();
boolean isFile();
boolean isDirectory();
Run Code Online (Sandbox Code Playgroud)

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