我对我的项目有以下结构。Java的文件路径或文件位置 - 新文件()
在Eclipse:
myPorjectName
src
com.example.myproject
a.java
com.example.myproject.data
b.xml
在a.java
,我想读b.xml
文件。我怎样才能做到这一点?具体而言,在a.java
,我用下面的代码:
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse (new File("data/b.xml"));
此代码不能找到b.xml
。但是,如果我将路径更改为src/com/example/myproject/data/b.xml
,那么它的工作原理。当前位置似乎在我的项目文件的根目录中。
但我看到别人的例子,如果和b.xml
是a.java
在同一个文件夹中,那么我们就可以直接使用new File("b.xml")
。但我尽量把b.xml
在a.java
同一文件夹中,而不是将在子文件夹中,但它仍然不起作用。如果这有效,那么在我的情况下,我应该可以使用new File("data/b.xml")
,对吧?我真的不明白为什么这不起作用。
它最有可能会更喜欢'的getClass()getResourceAsInputStream( “/ COM /例子/ myproject的/数据/ B.XML”);' – MadProgrammer 2013-05-01 05:38:05
它不工作,因为你的**默认目录(即java正在执行)**是'myPorjectName'它不在'myproject'中 – xagyg 2013-05-01 05:43:00
xagyg和MadProgrammer的评论让我明白为什么我做错了。感谢你们。以下答案让我学到更多东西。 – Joey 2013-05-01 06:17:07