现在的位置: 首页 > 综合 > 正文

Properties文件解析

2018年04月09日 ⁄ 综合 ⁄ 共 2051字 ⁄ 字号 评论关闭
package com.winskysoft.bbk.tools;

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.util.Properties;
import javax.servlet.ServletContext;
import javax.servlet.http.HttpServlet;

/**
 * 读取配置文件
 *
 */
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 (IOException e) {
			System.err.println("读取配置文件config.properties错误!");
			e.printStackTrace();
		}
	}
	
	public PropertiesUtil(InputStream in){
		try {
			p = new Properties();
			p.load(in);
		} catch (IOException e) {
			System.err.println("读取配置文件config.properties错误!");
			e.printStackTrace();
		}
		
	}

	public static String getConfigFile(HttpServlet hs) {
		return getConfigFile(hs, "config.properties");
	}

	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;
		}
		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);
	}
}

抱歉!评论已关闭.