类加载器

来源:互联网 发布:cf登录不上网络异常 编辑:程序博客网 时间:2024/05/15 03:45
package cn.itcast.dao;import java.io.FileInputStream;import java.io.FileNotFoundException;import java.io.IOException;import java.io.InputStream;import java.net.URL;import java.util.Properties;//如果读取资源文件的程序不是servlet的话,//就只能通过类转载器去读了,文件不能太大//用传递参数方法不好,耦合性高public class UserDao {private static Properties dbconfig=new Properties();static {InputStream in=UserDao.class.getClassLoader().getResourceAsStream("db.properties");try {dbconfig.load(in);} catch (IOException e) {throw new ExceptionInInitializerError(e);}//上面代码类装载器只装载一次,下面代码用类装载方式得到文件位置//.class是当该类加载且创建时该类加载,该另类用来封装对象运行状态URL url=UserDao.class.getClassLoader().getResource("db.properties");String str=url.getPath();//file:/C:/apache-tomcat-7.0.22/webapps/day05/WEB-INF/classes/db.propertiestry {InputStream in2=new FileInputStream(str);try {dbconfig.load(in2);} catch (IOException e) {throw new ExceptionInInitializerError(e);}} catch (FileNotFoundException e1) {throw new ExceptionInInitializerError(e1);}}public void update() {System.out.println(dbconfig.get("url"));}}