java.util.Properties类 学习笔记2

java中的properties文件是一种配置文件,主要用于表达配置信息,文件类型为*.properties,格式为文本文件,文件的内容是格式是”键=值”的格式,在properties

文件中,可以用”#”来作注释,properties文件在Java编程中用到的地方很多,操作很方便。

import java.io.*; 
import java.util.Properties; 
import javax.servlet.http.*; 
import javax.servlet.*; 
import javax.servlet.jsp.*;

public class PropertiesUtil { 
	private String fileName; 
	private Properties p; 
	private FileInputStream in; 
	private FileOutputStream out;
	
	/**
	 * 根据传进的文件名载入文件
	 */
	public PropertiesUtil(String fileName) {
	    this.fileName = fileName;
	    File file = new File(fileName);
	    try {
	        in = new FileInputStream(file);
	        p = new Properties();
	        // 载入文件
	        p.load(in);
	        in.close();
	    } catch (FileNotFoundException e) {
	        System.err.println("配置文件config.properties找不到!!");
	        e.printStackTrace();
	    } catch (Exception e) {
	        System.err.println("读取配置文件config.properties错误!!");
	        e.printStackTrace();
	    }
	}
	
	/**
	 * 配置文件一律为config.propertities,并且统一放在web应用的根目录下。
	 */
	public static String getConfigFile(HttpServlet hs) {
	    return getConfigFile(hs, "config.properties");
	}
	
	/**
	 * 在servlet中使用,直接用this作为参数,HttpServlet类型 根据配置文件名从当前web应用的根目录下找出配置文件
	 */
	public static String getConfigFile(HttpServlet hs, String configFileName) {
	    String configFile = "";
	    ServletContext sc = hs.getServletContext();
	    configFile = sc.getRealPath("/" + configFileName);
	    if (configFile == null || configFile.equals("")) {
	        configFile = "/" + configFileName;
	    }
	    return configFile;
	}
	
	/**
	 * jsp中用pageContext作参数
	 */
	public static String getConfigFile(PageContext hs, String configFileName) {
	    String configFile = "";
	    ServletContext sc = hs.getServletContext();
	    configFile = sc.getRealPath("/" + configFileName);
	    if (configFile == null || configFile.equals("")) {
	        configFile = "/" + configFileName;
	    }
	    return configFile;
	}
	
	/**
	 * 列出所有的配置文件内容
	 */
	public void list() {
	    p.list(System.out);
	}
	
	/**
	 * 指定配置项名称,返回配置值
	 */
	public String getValue(String itemName) {
	    return p.getProperty(itemName);
	}
	
	/**
	 * 指定配置项名称和默认值,返回配置值
	 */
	public String getValue(String itemName, String defaultValue) {
	    return p.getProperty(itemName, defaultValue);
	}
	
	/**
	 * 设置配置项名称及其值
	 */
	public void setValue(String itemName, String value) {
	    p.setProperty(itemName, value);
	    return;
	}
	
	/**
	 * 保存配置文件,指定文件名和抬头描述
	 */
	public void saveFile(String fileName, String description) throws Exception {
	    try {
	        File f = new File(fileName);
	        out = new FileOutputStream(f);
	        p.store(out, description);// 保存文件
	        out.close();
	    } catch (IOException ex) {
	        throw new Exception("无法保存指定的配置文件:" + fileName);
	    }
	}
	
	/**
	 * 保存配置文件,指定文件名
	 */
	public void saveFile(String fileName) throws Exception {
	    saveFile(fileName, "");
	}
	
	/**
	 * 保存配置文件,采用原文件名
	 */
	public void saveFile() throws Exception {
	    if (fileName.length() == 0)
	        throw new Exception("需指定保存的配置文件名");
	    saveFile(fileName);
	}
	
	/**
	 * 删除一个属性
	 */
	public void deleteValue(String value) {
	    p.remove(value);
	}
	
	public static void main(String[] args) {
	    String file = "D:\\ttt.properties";
	    PropertiesUtil pu = new PropertiesUtil(file);
	    pu.list();
	}
}


赞(52) 打赏
未经允许不得转载:优客志 » JAVA开发
分享到:

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏