日期:2014-05-20  浏览次数:20898 次

IntelliJ IDEA 的working directory问题
BufferedReader reader = new BufferedReader(new FileReader("input.txt"));

上面这行代码在IntelliJ IDEA中会报FileNotFoundException
我的input.txt与该java类在同一目录下,而且我也检查了IntelliJ IDEA的输出目录,即out/production/{Project}/{Module},input.txt与编译好的class文件也都存在,且在同一目录。
请教为什么class和input.txt明明在同一目录下,还是会报FileNotExcption异常?

后来经过google,发现edit configurations里面有个working directory,这个值是{Project}目录,即项目的根路径,把input.txt放在这里,则运行成功。
或者修改working directory,指向输出目录(见上文),也可以运行成功。
难道每个module的working directory都要手动修改到输出目录吗?还是我没有设置好?

------解决方案--------------------
和.class 放到一起的使用 getResourceAsStream 读
------解决方案--------------------
引用:
难道每个module的working directory都要手动修改到输出目录吗?还是我没有设置好?


是的,——但是不建议你这样做。

从项目结构来说,input.txt 是资源文件而不是Java的类,资源文件最好是用 working directory 的相关路径,或者用主流操作系统都支持的用户路径。

如果非要把它跟 Java 类一起打入jar包,那读取的时候可以用 class path,比如 

InputStream in = XXX.class.getResourceAsStream("input.txt");