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

关于IO操作,文件路径问题。
本帖最后由 roypayne0305 于 2013-10-06 08:56:16 编辑


txt文件和java文件在同一个目录,

File f2 = new File("bb.txt");

这样写,路径不对吗?貌似找不到。为什么呢?


------解决方案--------------------
 File f2 = new File("bb.txt");

这个在eclipse里是在项目的根目录下,在cmd运行时当前路径下。
------解决方案--------------------
把bb.txt拖到src目录下就行了
------解决方案--------------------
这种相对路径是相对 System.getProperty("user.dir")而言的,你输出一下user.dir的内容就知道了。
------解决方案--------------------
如果你不提供具体磁盘路径(例如:d:\\)这样行式,那么程序在执行过程中会默认把当前工程所在目录(也就是比src更上一级目录)作为文件目录!当你执行代码创建文件程序无误后,右键点击工程刷新工程就能找到文件了!
------解决方案--------------------
应该放在TESTIO下面, System.getProperty("user.dir")
------解决方案--------------------
引用:
Quote: 引用:

这种相对路径是相对 System.getProperty("user.dir")而言的,你输出一下user.dir的内容就知道了。


引用:
把bb.txt拖到src目录下就行了


为毛是这样呢?谁懂?能分析的更底层一点吗?

首先java的相对路径是以System.getProperty("user.dir")为参照的,就是你的类编译后bin(相对于IDE)的路径,但是你的bb.txt在bin目录下的test/io/TestTxt下,当然找不到了,你首先要明白,你的src路径并不是你最后的类路径,而且类的路径和文本文件不是在一个目录下就能找到的,明白?
------解决方案--------------------
试一下这个吧
InputStream is = this.getClass().getClassLoader()
.getResourceAsStream("bb.txt");