java.io.FileNotFoundException: E:\work\work (拒绝访问。)
2023-09-11 14:19:01 时间
转载自: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/");
因为这样你访问的是一个目录,因此就拒绝访问。
相关文章
- Java函数式编程和Lambda表达式
- Java 流(Stream)、文件(File)和IO -- Java ByteArrayOutputStream类
- Java IO: FileOutputStream
- Java Date Time 教程-java.sql.Timestamp
- Java FP: 伪造闭包工厂,创建域对象
- Java IO: 字符流的Buffered和Filter
- java中的mmap实现--转
- 第55节:Java当中的IO流-时间api(下)-上
- 第39节:Java当中的IO
- Java 设计模式之装饰模式,Java 装饰模式,java装饰模式和代理模式的区别
- Java反射库中的安全漏洞修复
- java.io.IOException: Could not locate executable nullbinwinutils.exe in the Hadoop binaries.
- 从零开始学 Java - Spring 一主多从、多主多从 数据库配置
- java.sql.SQLException: Access denied for user 'Administrator'@'localhost'
- 自动化测试之java的job任务
- java使用siger 获取服务器硬件信息(CPU 内存 网络 io等)
- Java魔法堂:String.format详解
- java.io.FileNotFoundException: ***(Too many open files)
- Oracle:将继续支持Java EE
- base64文件上传 java.io.FileNotFoundException 拒绝访问
- Top 10 Mistakes Java Developers Make--reference
- java.io.FileNotFoundException: D:tomcat2apache-tomcat-5.5.26webappsROOTworkflatUpload (拒绝访问。)
- java项目异常监控_JAVA项目中的常用的异常处理情况总结