今天在学java.io的时候遇到一个问题,老师讲java.io相对路径读取时默认从项目工程根目录开始读取,但是我自己尝试的时候文件都存在就是读取不了。

具体看下图::

java系统找不到指定路径怎么解决问题 java找不到文件怎么回事_java


这是根目录里有个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中更改默认路径打开一看:

java系统找不到指定路径怎么解决问题 java找不到文件怎么回事_相对路径_02


发现默认路径竟然是E:\java\code\chapter22

修改为:E:\java\code后:

java系统找不到指定路径怎么解决问题 java找不到文件怎么回事_相对路径_03


执行成功。