java_web12-WEB应用中的普通Java程序如何读取资源文件
2013-02-03 22:50
661 查看
12-WEB应用中的普通Java程序如何读取资源文件
摘要: WEB应用中的普通Java程序如何读取资源文件
摘要: WEB应用中的普通Java程序如何读取资源文件
public class ServletContextDemo6 extends HttpServlet { private static final long serialVersionUID = 1L; protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { UserDao userdao = new UserDao(); userdao.add2(); } protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { // TODO Auto-generated method stub } }
package cn.com.rong.dao; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class UserDao { /*不能通过httpservlet读取,那是servlet层,dao层不能与servlet层耦合 * 如果读取资源文件的程序不是servlet的话,就只能通过“类装载器”读了*/ //-----------------写在static中------------------------------------------------------ /*像配置的资源文件,我们通常只读一次,像读取连接数据库的数据 * 所以我们把他写进静态代码块,这样所有的方法(CURD)都可以 * 使用 * */ private static Properties dbconfig = new Properties(); static { try{ InputStream in = UserDao.class.getClassLoader().getResourceAsStream("db.properties"); dbconfig.load(in); }catch(Exception e){ throw new ExceptionInInitializerError(); } } public void update() throws IOException{ System.out.println(dbconfig.getProperty("url")); } //--------------------如果不写在static中------------------------------------------ private void add() throws IOException { System.out.println(UserDao.class.getClassLoader().getResource("/")); /*返回的是class所在路径所以,下面的要放在classes下面 在eclipse中放在src目录下*/ InputStream in1 = UserDao.class.getClassLoader().getResourceAsStream("db.properties"); Properties pro = new Properties(); pro.load(in1); System.out.println(pro.getProperty("url")); } /*注意: * 通过类加载器加载的源文件不能太大,否则内存溢出 * 类装载器,会把该源文件按照类的方式读进内存*/ /*问题:1如第一段程序代码(static的)当我们更改db.properties文件中的内容时,我们读到的内容是最新的吗? * 答:不是,因为我们使用static内容只加载一次,所以不变。 * 问题2,如第二段程,序当我们更改db.properties文件中的内容时,我们读到的内容是最新的吗? * 答:不是,因为读取方式是通过类加载器加载的,类只加载一次,当要读取文件时,检查内存中有这个文件,那么ok * 问题3,我们要读到最新的数据怎么办? * 答:通过类加载方式得到源文件的位置,再通过传统方式读取源文件数据,这样可以读取到更新后的文件*/ public void add2() throws IOException{ /*通过类加载方式得到源文件的位置,再通过传统方式读取源文件数据,这样可以读取到更新后的文件*/ String path = UserDao.class.getClassLoader().getResource("db.properties").getPath(); FileInputStream in = new FileInputStream(path); Properties pro = new Properties(); pro.load(in); System.out.println(pro.getProperty("url")); } }
相关文章推荐
- Java-Servlet--《12-WEB应用中的普通Java程序如何读取资源文件.mp4》 有疑问
- WEB应用中普通Java程序如何读取资源文件
- WEB应用中的普通Java程序如何读取资源文件
- web应用中普通java程序读取资源文件
- Web应用中的普通java程序获取资源文件
- Jar中的Java程序如何读取Jar包中的资源文件
- 普通java程序读取资源文件
- java_web11-ServletContext读取Web应用中的资源文件
- java程序读取资源文件时路径如何指定
- javaweb程序中,普通的java类,不是servlet类读取资源文件的方式
- 在java程序里读取Struts资源文件里的KEY
- WEB应用中读取资源文件的方式有三种
- 使用Spring开发web应用,读取外部资源文件问题
- java web项目读取资源文件
- 关于如何在java的web应用获取服务器资源。
- Java程序如何读取xxx.properties配置文件
- ServletContext读取Web应用中的资源文件
- Java web中,当表单含有文件上传时,提交数据的如何读取
- javaweb读取任意目录的下的properties配置文件(解决普通java类读web-inf下任意目录)
- 用普通的java读取资源文件