java 对properties 文件的写操作
调用:
还有一个问题没有解决,就是如果文件在本项目中,读进来的应该是一个流。有没有处理过的。谢谢...
对存放到**.properties 文件中的内容进行读取,当**.properties 内容有变更时,直接修改,不需要重新启动服务器
package com.rt.portal.web.guangxi.ICBC.clrcenter.util; import java.io.File; import java.io.FileInputStream; import java.net.URL; import java.util.Properties; /** *<pre> * COMPANY 海科融通 * @author liucheng * MSN soliucheng@hotmail.com * 2012-2-28 上午09:27:14 * ALL_RIGHT: 2011-2015 * </pre> */ public class FtpUtil { private static FtpUtil m_instance; private static String PFILE; synchronized public static FtpUtil getInstance() { if (m_instance == null) { if (PFILE == null) { URL url =Thread.currentThread().getContextClassLoader().getResource("ftp.properties"); } m_instance = new FtpUtil(); } return m_instance; } private File m_file = null; private long m_lastModifiedTime = 0; private Properties m_props = null; private FtpUtil() { 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 String getConfigItem(String name, String 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; String val = m_props.getProperty(name); if (val == null) { return defaultVal; } else { return val; } } public static void main(String args []){ String userName = FtpUtil.getInstance().getConfigItem("FTPTRANSFERPART","192.168.30.36"); System.out.println(userName); } }
对固定不变的**.properties 对容进行读取,入到一个对象变量里
public static String GXIP = null; public static String GXPORT = null;
static { Properties props = new Properties(); InputStream in = null; try { in = Thread.currentThread().getContextClassLoader().getResourceAsStream("define.properties"); props.load(in); Enumeration<?> en = props.propertyNames(); while (en.hasMoreElements()) { String key = (String) en.nextElement(); if (key.equals("GXIP")) { GXIP = props.getProperty(key); } else if (key.equals("GXPORT")) { GXPORT = props.getProperty(key); } } }catch (Exception e) { }finally { if (in != null) { try { in.close(); } catch (IOException e) { e.printStackTrace(); } } } }
还有一种简单的方式来读取xx.properties 文件
public class ReadProperties {
public static ResourceBundle resources = ResourceBundle.getBundle("config/"+File.separator+ "spy");
public static String getString(String str) {
return resources.getString(str);
}
public static void main(String[] args) {
System.out.println(getString("module.log"));
}
}