Java對properties配置文件的操作
/*
?* Created on 2005-1-4
?*
?* TODO To change the template for this generated file go to
?* Window - Preferences - Java - Code Style - Code Templates
?*/
package com.yorsun;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;
/**
?* @author Administrator
?*
?* TODO To change the template for this generated type comment go to Window -
?* Preferences - Java - Code Style - Code Templates
?*/
public class PropertiesUnit {
?private String filename;
?private Properties p;
?private FileInputStream in;
?private FileOutputStream out;
?public PropertiesUnit(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) {
???// TODO Auto-generated catch block
???System.err.println("配置文件config.properties找不到!");
???e.printStackTrace();
??} catch (IOException e) {
???// TODO Auto-generated catch block
???System.err.println("讀取配置文件config.properties錯誤!");
???e.printStackTrace();
??}
?}
?public static String getConfigFile(HttpServlet hs) {
??return getConfigFile(hs, "config.properties");
?}
?/**
? * @param hs
? * @param configFileName
? * @return configFile
? */
?private static String getConfigFile(HttpServlet hs, String configFileName) {
??String configFile = "";
??ServletContext sc = hs.getServletContext();
??configFile = sc.getRealPath("/" + configFileName);
??if (configFile == null || configFile.equals("")) {
???configFile = "/" + configFileName;
??}
??// TODO Auto-generated method stub
??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);
?}
?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="/eclipse/workspace/NewsTest/WEB-INF/config.properties";
//??String file="D:\\eclipse\\workspace\\NewsTest\\WEB-INF\\config.properties";
??PropertiesUnit pu=new PropertiesUnit(file);
??pu.list();
?}
}