关于java.io使用相对路径读取文件找不到文件但是文件存在的解决方案

今天在学java.io的时候遇到一个问题,老师讲java.io相对路径读取时默认从项目工程根目录开始读取,但是我自己尝试的时候文件都存在就是读取不了。
具体看下图::
在这里插入图片描述
这是根目录里有个tempfile1,运行代码如下:

package com.bjpowernode.java.io;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;

/*
int read(byte[] b)
    一次最多读取b.length个字节
    减少硬盘和内存的交互,提高程序执行效率
    往bute[]数组中读
 */
public class FileInputStreamTest03 {
    public static void main(String[] args) {
        FileInputStream fis = null;
        try {
            //采用相对路径,一定是从当前位置作为起点开始找
            //IDEA默认当前路径:工程Project的根是IDEA的默认当前路径,也就是从工程的根开始找
            fis = new FileInputStream("tempfile1");
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }finally {
            if (fis != null) {
                try {
                    fis.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

代码中的相对路径直接就是tempfile1应该可以读取到,但是运行报错:
java.io.FileNotFoundException: tempfile1 (系统找不到指定的文件。)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(FileInputStream.java:195)
at java.io.FileInputStream.(FileInputStream.java:138)
at java.io.FileInputStream.(FileInputStream.java:93)
at com.bjpowernode.java.io.FileInputStreamTest03.main(FileInputStreamTest03.java:19)

后来我尝试更改目录到chapter23下面建立文件,更改文件路径也不行,最后查解决方案,没有太详细的解决办法,看到有人说在run->edit Configuration->work directory中更改默认路径打开一看:
在这里插入图片描述
发现默认路径竟然是E:\java\code\chapter22
修改为:E:\java\code后:
在这里插入图片描述
执行成功。


版权声明:本文为weixin_50356899原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。