当前位置:首页 > 服务端 > java.io.FileNotFoundException: E:\work\work (拒绝访问。)

java.io.FileNotFoundException: E:\work\work (拒绝访问。)

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

 

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

1 java.io.FileNotFoundException: .\xxx\xxx.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: .\xx\xx (拒绝访问。)
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/");

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

 

作者:拾月凄辰
来源链接:https://www.cnblogs.com/FengZeng666/p/11946981.html

版权声明:
1、Java侠(https://www.javaxia.com)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaxia.com/server/124657.html

分享给朋友:

“java.io.FileNotFoundException: E:\work\work (拒绝访问。)” 的相关文章