• 欢迎访问开心洋葱网站,在线教程,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入开心洋葱 QQ群
  • 为方便开心洋葱网用户,开心洋葱官网已经开启复制功能!
  • 欢迎访问开心洋葱网站,手机也能访问哦~欢迎加入开心洋葱多维思维学习平台 QQ群
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏开心洋葱吧~~~~~~~~~~~~~!
  • 由于近期流量激增,小站的ECS没能经的起亲们的访问,本站依然没有盈利,如果各位看如果觉着文字不错,还请看官给小站打个赏~~~~~~~~~~~~~!

java对properties文件进行解析

JAVA相关 水墨上仙 1514次浏览

java对properties文件进行解析,在用java自带的properties类进行properties文件解析的时候,输出的时候很可能出现乱码问题,在开始的时候我也是找不到问题,查出了之后,贴出来跟大家分享。作者:xulong1516519

package properties;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.Enumeration;
import java.util.Properties;
public class PropertiesUtil {
	private String filename = "e:/temp/config.properties";
//	private String filename = "config.properties";
	private Properties p;
	private FileInputStream in;
	private FileOutputStream out;
	public PropertiesUtil() {
		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 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 getNameValuePair() {
		
		Enumeration<Object> enumKeys= p.keys();
		while(enumKeys.hasMoreElements()) {
			
			String key= (String)enumKeys.nextElement();
			try {
				
				//p.getProperty(key)本身解析的时候可能已经做过一次转码转码方式可能就是ISO8859-1所以得先通过这种转码过来
				System.out.println(key+"--->"+new String(p.getProperty(key).getBytes("ISO8859-1"), "gbk"));
			} catch (UnsupportedEncodingException e) {
				
				e.printStackTrace();
			}
		}
	}
	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[] A) {
		PropertiesUtil propertiesUtil = new PropertiesUtil();
		propertiesUtil.getNameValuePair();
	}
}
//另外有人说properties文件的写法:name=value还有人说name:value有人说只能是其中一种其实都行properties源码有解释。


开心洋葱 , 版权所有丨如未注明 , 均为原创丨未经授权请勿修改 , 转载请注明java对properties文件进行解析
喜欢 (0)
加载中……