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/");

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

  • 相关阅读:
    《ECMAScript6入门》___阮一峰 笔记
    JS的常用正则表达式 验证密码(转载自用)
    微信小程序 写一个获取验证码 及setInterval 使用基本方法
    python中将图片从客户端(client)推到(POST)到服务器端(server)的方法
    用python将MSCOCO和Caltech行人检测数据集转化成VOC格式
    Tensorflow物体检测(Object Detection)API的使用
    opencv获取IP摄像头(IP-camera)实时视频流
    利用flask将opencv实时视频流输出到浏览器
    Tensorflow同时加载使用多个模型
    opencv在同一窗口打印多张图片
  • 原文地址:https://www.cnblogs.com/FengZeng666/p/11946981.html
Copyright © 2011-2022 走看看