今天在学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后:
执行成功。