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、Properties等。一般处理方式如下,

Properties处理一般的配置文件,ResourceBundle处理不同语言版本的配置文件。

参考http://stackoverflow.com/questions/6978415/properties-vs-resource-bundle

使用ResourceBundle的代码如下:

ResourceBundle resource = ResourceBundle.getBundle("/conf/a.txt"); //假定在conf文件夹在classpath

PropertyResourceBundle bundle = (PropertyResourceBundle)bundle;

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

for (String key: keys)

{

   //solve bundle.getString(key)

}

使用Properties的代码如下:

Properties properties = new Properties()

properties.load(new FileInputStream(getClass.getResource("/conf/a.txt")))

//properties.getProperty(“”)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值