web中的普通Java程序如何讀取資源文件

web中的普通Java程序如何讀取資源文件

在Servlet中:
//servlet調用其它程序,在其它程序中如何去讀取配置文件
//通過類裝載器
public class ServletDemo12 extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
UserDao user=new UserDao();
user.update();
}
}
Dao中:
//如果讀取資源文件的程序不是servlet的話,
//就只能通過類轉載器去讀了,文件不能太大
//用傳遞參數(傳遞getcontext)方法不好,耦合性高
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);——數據庫都讀不了,致命問題要拋給程序員看,因爲這個程序沒必要跑了
}

    //上面代碼類裝載器只能裝載一次,不能更新,下面代碼用類裝載方式得到文件位置,再用傳統方式讀文件
    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.properties
    try {
        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"));
}

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章