首页 > 代码库 > java程序读取资源文件时路径如何指定

java程序读取资源文件时路径如何指定

java程序,读取资源操作有两种方式。

一是直接通过File进行的。例如FileReader、BufferedReader等。文件目录就是相对于Project了。如我新建一个MyProject,那么,我在MyProject下有一个icons文件夹,如果想读取icons里面的东西,路径是诸如"icons/***.gif"的相对路径就可以了。

二是通过getClass().getResource(“”)得到。第二种方法必须保证文件是在classpath包括的路径下。而一般的classpath(可以查看任一eclipse项目的.classpath文件)至少包括的内容如下:

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.7.0_51"/>
    <classpathentry kind="output" path="bin"/>
</classpath〉

可知,src和bin是默认的,所以第二种方式,资源文件必须是在这两个文件夹下才行。所以如果在src文件夹下有一个property.ini文件,那么可以通过getResource("/property.ini")得到,注意这里必须是‘/‘开头


maven项目,默认有一个resource文件夹,而这个文件夹是在classpath路径下的,所以一般都把资源文件放在这里,之后方便地通过getResource()获取内容即可。


而对于xxx=xxx这种配置信息,java专门设计了一个类来处理,ResourceBundle。一般处理方式如下,

ResourceBundle resource = ResourceBundle.getBundle("conf/a.txt");

PropertyResourceBundle bundle = (PropertyResourceBundle)bundle;

Enumeration<String> keys = bundle.keys();

for (String key: keys)

{

   //solve bundle.getString(key)

}

java程序读取资源文件时路径如何指定