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

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

package cn.demo;

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

}