动态读取properties文件

package com.resoft.util.common;
import java.io.File;
import
java.io.FileInputStream;
import java.net.URL;
import
java.util.Properties;

import org.apache.log4j.helpers.Loader;
/**
*
不重启动服务器动态加载properties文件改动
* @author Administrator
*
*/
public class
ConfigManager {
        private static
ConfigManager m_instance;
        private
static String PFILE;

synchronized public static
ConfigManager getInstance()
{
          if (m_instance ==
null) {
           if
(PFILE == null)
{
            URL url
=
Loader.getResource("kindNameChange.properties");
           
PFILE =
url.getPath();
//           
PFILE = StringUtil.replaceAll(PFILE, "%20", "
");
          
}
           m_instance =
new ConfigManager();
         
}
          return
m_instance;
        }

private File m_file =
null;
        private long
m_lastModifiedTime = 0;
        private
Properties m_props = null;

private ConfigManager()
{
          m_file = new
File(PFILE);
         
m_lastModifiedTime = m_file.lastModified();

if (m_lastModifiedTime
== 0) {
          
System.err.println(PFILE + " file does not
exist!");
          }

m_props = new
Properties();

try
{
          
m_props.load(new
FileInputStream(PFILE));
         
} catch (Exception e)
{
          
e.printStackTrace();
         
}
        }

final public Object
getConfigItem(String name, Object defaultVal)
{
          long newTime =
m_file.lastModified();
         
if (newTime == 0)
{
           if
(m_lastModifiedTime == 0)
{
           
System.err.println(PFILE + " file does not
exist!");
           } else
{
           
System.err.println(PFILE + " file was
deleted!!");
          
}
           return
defaultVal;
          } else if
(newTime > m_lastModifiedTime)
{
          
m_props.clear();
          
try {
           
m_props.load(new
FileInputStream(PFILE));
          
} catch (Exception e)
{
           
e.printStackTrace();
          
}
         
}
          m_lastModifiedTime =
newTime;

Object val =
m_props.getProperty(name);
         
if (val == null)
{
           return
defaultVal;
          } else
{
           return
val;
         
}
        }

}

时间: 2024-11-05 17:23:42

动态读取properties文件的相关文章

Java实现动态加载读取properties文件

问题: 当我们使用如下语句加载.properties时: ClassLoader classLoader = this.getClass().getClassLoader(); Properties prop = new Properties(); prop.load(classLoader.getResourceAsStream("/Application.properties")); 会发现修改了.properties后,即使重新执行,读入的仍为修改前的参数.此问题的原因在于Cla

五种方式让你在java中读取properties文件内容不再是难题

一.背景 最近,在项目开发的过程中,遇到需要在properties文件中定义一些自定义的变量,以供java程序动态的读取,修改变量,不再需要修改代码的问题.就借此机会把Spring+SpringMVC+Mybatis整合开发的项目中通过java程序读取properties文件内容的方式进行了梳理和分析,先和大家共享. 二.项目环境介绍 Spring 4.2.6.RELEASE SpringMvc 4.2.6.RELEASE Mybatis 3.2.8 Maven 3.3.9 Jdk 1.7 Id

细说Unity3D(一)——移动平台动态读取外部文件全解析

前言: 一直有个想法,就是把工作中遇到的坑通过自己的深挖,总结成一套相同问题的解决方案供各位同行拍砖探讨.眼瞅着2015年第一个工作日就要来到了,小匹夫也休息的差不多了,寻思着也该写点东西活动活动大脑和手指了.那么今天开始,小匹夫会记录一些平时工作中遇到的坑,以及小匹夫的应对方法,欢迎各位拍砖讨论.那么今天主要讨论一下Unity3D在移动端如何动态的读取外部文件,比如csv(txt),xml一类的文件.主要涉及的问题,就是PC端上本来测试的好好的东西,到了移动端就不能用了,所以要讨论一下PC端和

在JSP页面中读取properties文件

在做web开发时,经常遇到要修改一下配置信息.如果把这些配置信息写在代码中,后期的维护便会比较麻烦.所以,一般都是把配置信息写在配置文件里面. 在JSP文件中,如果想要调用properties文件中的变量,则要在有文件中引入 java.util.ResourceBundle 类: <%@ page contentType="text/html; charset=UTF-8" import="java.util.ResourceBundle" %> 已知配

Java读取Properties文件的六种方法

使用J2SE API读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2.使用java.util.ResourceBundle类的getBundle()方法 示例: ResourceBundle rb

转载:java基础学习总结——java读取properties文件总结

java基础学习总结--java读取properties文件总结 一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResourceAsStream方法和InputStream流去读取properties文件,使用getResourceAsStream方法去读取properties文件时需要特别注意properties文件路径的写法,测试项目如下: 1.1.项目的

慕容小匹夫 Unity3D移动平台动态读取外部文件全解析

Unity3D移动平台动态读取外部文件全解析 c#语言规范 阅读目录 前言: 假如我想在editor里动态读取文件 移动平台的资源路径问题 移动平台读取外部文件的方法 补充: 回到目录 前言: 一直有个想法,就是把工作中遇到的坑通过自己的深挖,总结成一套相同问题的解决方案供各位同行拍砖探讨.眼瞅着2015年第一个工作日就要来到了,小匹夫也休息的差不多了,寻思着也该写点东西活动活动大脑和手指了.那么今天开始,小匹夫会记录一些平时工作中遇到的坑,以及小匹夫的应对方法,欢迎各位拍砖讨论.那么今天主要讨

Java读取.properties文件

例1: 创建一个config文件夹 config文件夹中有一个Properties.properties文件 内容为: capitalLetter=ABCDE smallLetter=abcde 注意:config文件夹与包含Test类的包为同一级 import java.io.IOException; import java.util.Properties; public class Test { public static void main(String[] args) { Propert

java读取.properties文件及解决中文乱码问题

Java项目中有些信息(例如web的配置信息)可能要放在.properties文件中,那我们应该怎么来读取它们呢,下面给出一个工具类做一说明,并解决了中文乱码问题: 1.其中config.properties文件信息如下: name=\u843D\u82B1\u6709\u610Fwang王 str=\u6D41\u6C34\u65E0\u60C5 boolean=true 2.PropertiesUtil工具类读取.properties文件 import java.io.BufferedInp