java對properties文件進行解析

pc688 9年前發布 | 2K 次閱讀 Java

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源碼有解釋。</pre>

 本文由用戶 pc688 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!