java.io.FileNotFoundException: (系统找不到指定的路径。)怎么处理

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java.io.FileNotFoundException: (系统找不到指定的路径。)怎么处理相关的知识,希望对你有一定的参考价值。

具体的错误信息:

java.io.FileNotFoundException: c:\Documents and Setting\deep\My Documents\相关语料\Robust04\all\DISK_4\FR94 (系统找不到指定的路径。)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at java.io.FileReader.<init>(FileReader.java:55)
at xunlian.FileFRProcess.textAbstract(FileFRProcess.java:40)
at xunlian.FileFRProcess.main(FileFRProcess.java:17)

1、造成java.io.FileNotFoundException异常的原因为:通过io流根据给定路径调用文件时,发现文件不存在。

2、解决办法为:将想要通过io流调用的文件放置到编写程序时给出的对应路径下;或者找到文件,在编写程序时修改io流路径为文件的实际路径。

拓展:

1、Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

2、Java是由Sun Microsystems公司推出的Java面向对象程序设计语言(以下简称Java语言)和Java平台的总称。由James Gosling和同事们共同研发,并在1995年正式推出。Java最初被称为Oak,是1991年为消费类电子产品的嵌入式芯片而设计的。1995年更名为Java,并重新设计用于开发Internet应用程序。用Java实现的HotJava浏览器(支持Java applet)显示了Java的魅力:跨平台、动态Web、Internet计算。

参考技术A

Java.io.FileNotFoundException是Java错误中比较常见的一种。该错误是一种IO Exception,或者输入/出错误,其出现原因主要是未在指定文件夹内找到所需的文件。

一般导致该错误出现的原因有以下三个:

1、目标文件不存在

解决方式:将所需文件移动到指定路径中。如果未设置路径,默认为java项目路径

2、你指定的目标不是文件,而是一个文件路径

解决方式:记得在路径后加入文件。如“%windir/System32/cmd.exe”

3、你指定的文件由于某种原因无法读取

解决方式:可以先使用方法file.canRead();进行验证。如果认证结果为false,试试将文件转换成可读的格式。如果为true,请检查第一和第二项

希望我的回答有所帮助。

参考技术B

java.io.FileNotFoundException :当试图打开指定路径名表示的文件失败时,抛出此异常。不同的产生原因有不同的解决方案, 所以需要先分析异常产生的原因:  

异常产生的原因:

1、该文件不存在. 那么IO操作就会抛出该异常

2、如果该文件存在,但是由于某些原因不可访问,比如试图打开一个只读文件进行写入,则此时这些构造方法仍然会抛出该异常。

3、WIN10系统,直接向系统盘C盘的根目录,直接写入文件,那么也会抛出该异常.

处理异常的方案:

1、文件不存在时, 检查路径名填写错误,然后进行修改,或者创建出来. 

2、文件存在时, 我们需要检查该文件是否正在被修改占用, 或者该文件的属性是否是只读. 如果正在被修改占用,我们需要关闭其他占用该文档的应用.如果文件属性是只读,那么我们需要取消文档的只读属性

3、在WIN10系统,不要向系统盘C盘,直接创建文件, 需要先创建目录.然后写入文件

参考示范: 

import java.io.File;
import java.io.IOException;

public class FileTest 

public static void main(String[] args) 
//不同的操作系统,那么有不同的文件目录分隔符 ,所以建议不要直接写成"\\\\". 而应该使用File.separator 该字段 来获取
String sp = File.separator;//获取名称分隔符
File file = new File("d:" + sp + "book" + sp + "story.txt");

if (!file.getParentFile().exists()) // 如果book文件夹不存在
file.getParentFile().mkdir();// 创建book文件夹


if (!file.exists()) // 如果story.txt文件不存在
try 
file.createNewFile();// 创建story.txt
 catch (IOException e)  // 捕获异常并处理
e.printStackTrace();




拓展:  实际情况中,很多时候,文件夹存在,我们的重点是判断文件是否存在,且不存在,就创建. 有些输出流,就可以在文件不存在时,自动创建该文件. 比如FileOutputStream ,FileWriter ...

FileWriter fw = new FileWriter("d:\\\\菜单.txt");//注意 win10,不支持向c盘根目录写入文件
fw.close();

总结:  Java的异常处理机制是比较完善的, 除开通过推理逻辑, 避开一些异常, 更重要的是在运行中发生可以处理的异常时, 巧妙使用try catch 代码处理 .这样的程序才会更加的稳健

参考技术C

    可以上代码吗?

    这个异常是Java常见的IO异常,这个异常导致的是文件路径找不到。

    通常你可以使用trycatch(FileNotFoundException e)……来捕获异常。

    可以找到具体的文件进行读取,而不是到文件夹。

    也可以判断路径是否存在,如果不存在则mkdir.

    最后给你个例子

     public static boolean createDir(String destDirName)   
            File dir = new File(destDirName);  
            if (dir.exists())   
                System.out.println("创建目录" + destDirName + "失败,目标目录已经存在");  
                return false;  
              
            if (!destDirName.endsWith(File.separator))   
                destDirName = destDirName + File.separator;  
              
            //创建目录  
            if (dir.mkdirs())   
                System.out.println("创建目录" + destDirName + "成功!");  
                return true;  
             else   
                System.out.println("创建目录" + destDirName + "失败!");  
                return false;  
            

参考技术D 路径里面有中文哈
public class fileWrite
public static void main(String[] args)
File file = new File("D:/from.txt");
File file2 = new File("D:/to.txt");
BufferedReader reader = null;
BufferedWriter writer = null;
try
System.out.println("以行为单位读取文件内容,一次读一整行:");
reader = new BufferedReader(new FileReader(file));
writer = new BufferedWriter(new FileWriter(file2));
String tempString = null;
int line = 1;
int notBlankLine = 0;
int blankLine = 0;
// 一次读入一行,直到读入null为文件结束
while ((tempString = reader.readLine()) != null)
// 显示行号
System.out.println("line " + line + ": " + tempString);
line++;
if(StringUtils.isNotEmpty(tempString))//空行不写
if(notBlankLine > 0) writer.newLine();
writer.write(tempString);
notBlankLine ++;
blankLine = 0;
else//换行符
if(blankLine == 0) writer.newLine();
blankLine++;
notBlankLine = 0;


reader.close();
writer.close();
catch (IOException e)
e.printStackTrace();
finally
if (reader != null)
try
reader.close();
catch (IOException e1)


if (writer != null)
try
writer.close();
catch (IOException e1)




以上是关于java.io.FileNotFoundException: (系统找不到指定的路径。)怎么处理的主要内容,如果未能解决你的问题,请参考以下文章

在 Android 中解码 jpeg