zoukankan      html  css  js  c++  java
  • java.io.FileNotFoundException: E:workwork (拒绝访问。)

    转载自:https://blog.csdn.net/YQS_Love/article/details/51959776

    一、问题 
    在使用FileInputStream或FileOutputStream时会遇到如下问题1和问题2。 
    问题1:

    1 java.io.FileNotFoundException: .xxxxxx.txt (系统找不到指定的路径。)
    2     at java.io.FileOutputStream.open(Native Method)
    3     at java.io.FileOutputStream.<init>(Unknown Source)
    4     at java.io.FileOutputStream.<init>(Unknown Source)
    5     at com.yaohong.test.InputStreamTest.fileInputStream(InputStreamTest.java:13)
    6     at com.yaohong.test.InputStreamTest.main(InputStreamTest.java:27)

    问题2:

    1 java.io.FileNotFoundException: .xxxx (拒绝访问。)
    2     at java.io.FileOutputStream.open(Native Method)
    3     at java.io.FileOutputStream.<init>(Unknown Source)
    4     at java.io.FileOutputStream.<init>(Unknown Source)
    5     at com.yaohong.test.InputStreamTest.fileInputStream(InputStreamTest.java:13)
    6     at com.yaohong.test.InputStreamTest.main(InputStreamTest.java:27)

    二、分析
    在进行分析时,我得说清楚什么时候抛拒绝访问,什么时候抛找不到指定路径。原因是这样的,在构造一个File对象时,指定的文件路径是什么都可以,就算不存在也能够构造File对象,但是,现在你要对文件进行输入输出操作,也就是InputStream和OutputStream操作时,如果填写的路径不存在,那么就会报系统找不到指定路径,如果指定的是目录时,就会报拒绝访问异常。看了这个前提之后,在继续往下读。

    当遇到问题1时,的确是当前所指定的文件不存在或者目录不存在。
    当遇到第二个问题时,是因为你访问的是一个文件目录,如果这个目录没有权限访问或者是目录不存在,就会抛出问题2的异常。

    三、解决办法
    第一个的解决办法是,先判断一下当前文件是否存在,如果存在则略过,如果不存在,在创建,具体做法如下:

     1 //在填写文件路径时,一定要写上具体的文件名称(xx.txt),否则会出现拒绝访问。
     2 File file = new File("./mywork/work.txt");
     3 if(!file.exists()){
     4     //先得到文件的上级目录,并创建上级目录,在创建文件
     5     file.getParentFile().mkdir();
     6     try {
     7         //创建文件
     8         file.createNewFile();
     9     } catch (IOException e) {
    10         e.printStackTrace();
    11     }
    12 }

    第二个的解决办法是,在填写文件的路径时一定要具体到文件,如下:

    File file = new File("./mywork/work.txt");

    而不能写成:

    File file = new File("./mywork/");

    因为这样你访问的是一个目录,因此就拒绝访问。

  • 相关阅读:
    Validation failed for one or more entities. See 'EntityValidationErrors' property for more details
    Visual Studio断点调试, 无法监视变量, 提示无法计算表达式
    ASP.NET MVC中MaxLength特性设置无效
    项目从.NET 4.5迁移到.NET 4.0遇到的问题
    发布网站时应该把debug设置false
    什么时候用var关键字
    扩展方法略好于帮助方法
    在基类构造器中调用虚方法需谨慎
    ASP.NET MVC中商品模块小样
    ASP.NET MVC中实现属性和属性值的组合,即笛卡尔乘积02, 在界面实现
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/11946981.html
Copyright © 2011-2022 走看看