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