类装载器读取properties资源文件

类装载器

public class userDAO {

    private static Properties dbconfig =new Properties();

    static{
        try {
              InputStream instream =userDAO.class.getClassLoader().getResourceAsStream("db.propertites");
              dbconfig.load(instream);
        } catch (Exception e) {
            throw new ExceptionInInitializerError(e);
        }
    }

    public void update() throws IOException {
      System.out.println(dbconfig.getProperty("url"));
    }

    public void find() throws IOException {        

        }

    public void delete() throws IOException {        

        }

}

  

使用类装载器读取文件的弊端:

1.文件不能太大,因为它是以装载类的方式一次性加入内存中

2.类装载器只会加载一次,就是说不能显示文件的更新操作

如果需要读到实时数据,就不能通过类装载器来读文件,需要通过普通的文件路径的方式

public class DAO {

    public void update() throws IOException{

        String path = DAO.class.getClassLoader().getResource("db.properties").getPath();
        FileInputStream in= new FileInputStream(path);

        Properties pros = new Properties();
        pros.load(in);

        String url = pros.getProperty("url");    

    }

}

  

参考资料:

http://www.cnblogs.com/tech-bird/p/3843832.html

时间: 2024-12-28 23:58:17

类装载器读取properties资源文件的相关文章

在服务端中,读取properties资源文件中的数据

1.获取到资源的路径 2.读取数据 //properties文件对象 Properties properties = new Properties(); //通过HttpServletRequest request 对象 获取服务上下文环境中目标文件的真实路径 String realPath = request.getServletContext().getRealPath("/deom.properties"); //加载目标文件的数据 properties.load(new Fil

Java中读取properties资源文件

一.通过ResourceBundle来读取.properties文件 /** * 通过java.util.resourceBundle来解析properties文件. * @param String path:properties文件的路径 * @param String key: 获取对应key的属性 * @return String:返回对应key的属性,失败时候为空. */ public static String getPropertyByName1(String path,String

小谈——读取web资源文件的方式和路径问题

读取web资源文件的方式 a): 采用servletContext对象获得. 优点: 任意文件,任意路径都可获得 缺点: 必须在web环境下 // 拿到全局对象 ServletContext sc = this.getServletContext(); // 获取p1.properties文件的路径 String path = sc.getRealPath("/WEB-INF/classes/p1.properties"); b): 采用resourceBundle获得 优点: 非we

Java IO流 之 ResourceBundle 读取国际化资源文件

http://www.verejava.com/?id=16994867037422 /** java.util.ResourceBundle : 用来读取资源文件的类(*.properties) 资源文件里面的内容是Key=value 键值对 注意: 1. 根据Locale来读取资源文件时,如果没有找到以 baseName_language_country.properties 形式定义的资源文件, 就从 baseName.properties 资源文件读取 */ import java.ut

java util工具读取国际化资源文件

Locale ResourceBundle Locale读取资源文件 package yycg.util; import java.io.Serializable; import java.text.MessageFormat; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.Locale; import java.util.ResourceBundle;

读取properties属性文件——国际化

public class PropertiesInfo { /** * PropertiesInfo实例 */ private static PropertiesInfo pi = null; private static ResourceBundle resource; /** * 资源文件基名 * 该资源文件应该放置在classpath下 */ private final String PROPERTIES_BASE_NAME = "MessageResources"; /** *

maven 打包时动态替换properties资源文件中的配置值

pom build节点下面添加resource配置: [html] view plain copy <resources> <resource> <directory>src/main/resources/</directory> <filtering>true</filtering> <includes> <include>**/*.properties</include> </includ

win10 uwp 读取resw资源文件

ResourceContext resourceContext = ResourceContext.GetForViewIndependentUse(); ResourceMap resourceMap = Windows.ApplicationModel.Resources.Core.ResourceManager.Current.MainResourceMap.GetSubtree("my"); // Here you load the resource you need var

java的properties资源文件的读取

package com.lideng.work325; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.u