记一次idea使用相对路径导致的报FileNotFoundException异常的原因和解决方法

错误是这个样子的↓

Exception in thread "main" java.io.FileNotFoundException: basic_code\prop.properties (系统找不到指定的路径。)
	at java.base/java.io.FileInputStream.open0(Native Method)
	at java.base/java.io.FileInputStream.open(FileInputStream.java:213)
	at java.base/java.io.FileInputStream.(FileInputStream.java:155)
	at java.base/java.io.FileInputStream.(FileInputStream.java:110)
	at java.base/java.io.FileReader.(FileReader.java:60)
	at com.yfx.prop.PropertiesDemo3.main(PropertiesDemo3.java:16)

就执行一个io读取文件的操作↓

package com.yfx.prop;

import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
import java.util.Set;

/*
将持久化到文件的内容读取到内存
 */
public class PropertiesDemo3 {
    public static void main(String[] args) throws IOException {
        //创建Prop集合
        Properties prop = new Properties();
        //使用load方法加载文件内容到集合(有种问不能用文件字节流,要用字符流)
        prop.load(new FileReader("basic_code\\prop.properties"));
        //获取prop的keyset集合
        Set keySet = prop.stringPropertyNames();
        //遍历keyset通过key得到value
        for (String key : keySet) {
            //获取value
            String value = prop.getProperty(key);
            System.out.println(key + "=>" + value);
        }
    }
}

导致相对路径找不到文件的原因是因为当前执行类的工作目录不是当前项目路径↓

记一次idea使用相对路径导致的报FileNotFoundException异常的原因和解决方法_第1张图片

这个working directory要填当前项目的路径:D:\ideaProjects\exam\,而不是当前模块的路径D:\ideaProjects\exam\basic_code\,否则使用项目相对路径的地方就会报FileNotFoundException异常。

 

你可能感兴趣的:(java,io)