返回顶部

收藏

java对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

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. bigwhite 发表 2017-12-17 04:41:16 TB一周萃选[第1期]
  2. 加多 发表 2017-12-19 14:39:05 线程池使用FutureTask时候需要注意的一点事
  3. 卢利如 发表 2017-12-18 12:45:18 常见Java应用如何优雅关闭
  4. techug 发表 2017-12-18 04:34:32 《阿里巴巴Java开发手册》背后的故事与初心
  5. 尖兵 发表 2017-12-18 15:09:03 spring data jpa 小结
  6. Villim Wong 发表 2017-12-17 00:00:00 Java Exception
  7. 加多 发表 2017-12-17 02:02:18 线程不安全的SimpleDateFormat
  8. 萍韵众生 发表 2017-12-17 13:18:51 《Spring Cloud Config官方文档》快速启动
  9. TiuVe2 发表 2017-12-17 16:14:24 Java String 对 null 对象的容错处理
  10. 博主 发表 2016-11-16 18:21:34 如何排查Netty内存泄露问题?
  11. 博主 发表 2016-11-15 15:56:42 Java二进制兼容问题
  12. 博主 发表 2006-11-12 22:41:32 Java的动态链接

发表评论