Java---getResourceAsStream(String path)方法的用法

    在看JAVA连接数据库的视频教程中,出现过这个方法,觉得应该挺重要的就上网找了找。既然学到了就写出来,省的下次忘了。

    在JAVA中getResourceAsStream这个方法是用来获取配置文件的,方法传入的参数是一个路径。本以为写起来路径很简单,但是看来别人讲的,路径的填写还是挺有学问的。getResourceAsStream这个函数寻找文件的起点是JAVA项目的根目录,假设我的java文件的目录为../com/connect/Connection.java 而在这个目录下还有一个jdbcinfo.properties文件,以及在../com/目录下还有一个jdbcinfo2.properties文件,这两个都是配置文件。如果我想要在Connection.java中分别获取这两个文件该如何呢?

使用Class.getResourceAsStream()

public static void getRescource1(){
		Properties prop = new Properties();
		InputStream is = Connection.class.getResourceAsStream("jdbcinfo.properties");
		//InputStream is = Connection.class.getResourceAsStream("../jdbcinfo2.properties");
		try {
			prop.load(is);
			System.out.println(prop.getProperty("driver"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
由以上代码可知,需要获取与我java文件同一路径下的直接是文件名,如果需要访问上一级目录下的文件,使用绝对路径的话需要在前面加上 /com/jdb cinfo2.properties,使用相对路径的话要在前面加上   ../ 如果还需要再访问上一级须得在加上 ../ eg: ../../jdbcinfo2.properties。

使用Class.getClassLoader().getResourceAsStream()
public static void getRescource2()
	{
		Properties prop = new Properties();
		InputStream is = Connection.class.getClassLoader().
				getResourceAsStream("com/jdbcinfo3.properties");
		try {
			prop.load(is);
			System.out.println(prop.getProperty("driver"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

Class.getClassLoader().getResourceAsStream()默认使用的路径就是class文件的根目录,所以使用Class.getClassLoader().getResourceAsStream()来获取文件的时候不能在路径前面加上 " /

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值