2013-07-22 78 views
0

我的java文件例如有这样的路径com.company.project.util和文件javaClass.java。在此文件中,我编写了读取另一个文件的过程,该文件位于文件夹META-INF/example.xml中。需要哪个相对路径

这个文件夹com.company.project.utilMETA-INF位于相同的文件夹src。 我必须将哪个相对路径传入此javaClass.java才能实现example.xml?需要多少次使用../?因为我对这个大包名称有点困惑。

+0

你加载使用一个FileInputStream文件,或像Jayesh的答案解释的getResourceAsStream(),或者其他一些机制? – Will

+0

@将使用FileReader –

+1

然后它取决于你在哪里调用Java程序。这是工作目录。如果你不确定工作目录,你可以使用System.out.println(new File()。getAbsolutePath()); – Will

回答

0

如果从程序包根目录(src)运行程序并使用FileReader,那么您只需使用“META-INF/example.xml”。如果工作目录不同,请根据需要修改此路径。

0

只给你例子

我的Test1类是默认的包,我的资源文件夹位于src文件夹中,我能够访问的资源。你可以根据你的需要来绘制你的需求。

公共类的Test1 {

public static void main(String[] args) { 
    new Test1(); 
} 
Test1(){ 
    BufferedInputStream file= (BufferedInputStream) this.getClass().getResourceAsStream("resources/a.txt"); 
    try { 
     System.out.println((char)file.read()); 
    } catch (IOException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
} 

}

另外,如果你的java类是在任何包,那么你可以去使用类路径“../”作为退一万步为每个文件夹。一旦你达到课堂路径,给资源的路径。

0

如果该文件是在源文件夹,然后它在你的classpath,你就可以用作为一种资源的绝对路径来加载它:

this.getClass().getResourceAsStream("/META-INF/example.xml");