用这种方式获取properties为什么会报错?

乐之者v 2016-06-23 10:35:04
我想在Eclipse里面新建了一个database.properties文件,然后获取里面的内容。。
我把下面的 InputStream is = PropertiesDemo.class.getClassLoader().getResourceAsStream("database.properties");
改成 InputStream is=new FileInputStream("database.properties");就没错了。。
为什么用类似反射的机制就会报错呢?

public class PropertiesDemo {
public static void main(String[] args) throws Exception{
Properties prop = new Properties();
//这种方式为什么会报错呢?
InputStream is = PropertiesDemo.class.getClassLoader().getResourceAsStream("database.properties");
prop.load(is);

String url=prop.getProperty("url");
String user=prop.getProperty("user");
String password=prop.getProperty("password");

System.out.println(url);
System.out.println(user);
System.out.println(password);
}

}


另外的database.properties如下所示:
url=url1
user=use1
password=password1
...全文
210 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
橙子赖 2016-06-25
  • 打赏
  • 举报
回复
datebase.properties文件放在src目录下。。 另外:建议properties文件内容以 xxx.url=url1 xxx.user=use1 xxx.password=password1 方式取名。xxx代表任意单词
快乐先生 2016-06-24
  • 打赏
  • 举报
回复
文件路径的问题。
soton_dolphin 2016-06-23
  • 打赏
  • 举报
回复
你的项目的结构是什么样的?
阳光越来越暖 2016-06-23
  • 打赏
  • 举报
回复
InputStream in = getClass().getResourceAsStream("资源Name");这种方式要求properties文件和当前类在同一文件夹下面。如果在不同的包中,必须使用: InputStream ins = this.getClass().getResourceAsStream("/cn/zhao/properties/testPropertiesPath 在不懂看这个 http://zhidao.baidu.com/link?url=S4A7NfubnrchLbKOT0NtMNW4ky-iOOTQlUwokrqHkEa0E6GFOP6DhrLY4cye-tGrPNzpXZCSpPsHdrJjE-raPa
阳光越来越暖 2016-06-23
  • 打赏
  • 举报
回复
Properties p=new Properties(); p.load(new FileInputStream(new File("src/properties")));

62,628

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧