zoukankan      html  css  js  c++  java
  • java.util.Properties

     1 Properties文件中分隔符及空格的处理

    因为 Properties 继承于 Hashtable,所以可对 Properties 对象应用 put 和 putAll 方法。但强烈反对使用这两个方法,因为它们允许调用方插入其键或值不是 Strings 的项。相反,应该使用 setProperty 方法。如果在“有危险”的 Properties 对象(即包含非 String 的键或值)上调用 store 或 save 方法,则该调用将失败

    zz=Hello
    aa= Hello

    bb = Hello 
    cc = Hello

    p.load(new FileInputStream("D:\iEMP\iEMP\etc\sysconf\asdf.properties"));

    String va = p.getProperty("bb");
    String vb = p.getProperty("aa");
    System.out.println("AA"+va+"BB");
    System.out.println("AA"+vb+"BB");

    打印

    AAHello BB
    AAHelloBB

    可见, = 号前后是可以有空白的,但是key之前,value之后则不可以!

     若

    zz=Hello
    aa : Hello

    bb : Hello
    cc = Hello

    打印

    AAHello cc = Hello BB
    AAHello BB

    将是两字符的键 ":="。可以使用   和   转义序列包括行结束符字符。跳过键后面的所有空白字符;如果键后的首个非空白字符是 '=' 或 ':',则忽略该字符并且跳过其后的所有空白字符。行中所有剩余的字符都成为关联元素字符串的一部分;如果没有剩余的字符,则该元素为空字符串 ""。一旦标识了组成键和元素的原始字符序列,则如上所述执行转义处理。

    作为一个示例,以下三行都指定了键 "Truth" 和关联元素值 "Beauty"

     Truth = Beauty
            Truth:Beauty
     Truth                  :Beauty
     

    另一个示例,以下三行都指定了单个属性:

     fruits                           apple, banana, pear, 
                                      cantaloupe, watermelon, 
                                      kiwi, mango
    
    --------------------- 参照jdk api文档

    ------------- 在properties中被当做了换行符,既其后一行都被当成了当前行的value
    ------------- 可以出现“:”、“=”作为key、value分隔符,但是不能同时出现———以第一个出现的为准。


     @ConstructorProperties 的用法:

    http://www.cnblogs.com/kaitao/archive/2012/02/21/2361671.html

    2 Propertie 与xml文件

    public static synchronized boolean storeToXML(
    ) {
    Map<String, String> refConfMap = new HashMap();
    refConfMap.put("aa", " LK ");
    Properties cfgPro = new Properties();
    cfgPro.putAll(refConfMap);
    
    OutputStream out = null;
    try {
    File confFile = new File("d://test/test/aa.xml");
    if (!confFile.exists()) {
    confFile.createNewFile();
    }
    out = new FileOutputStream(confFile);
    cfgPro.storeToXML(out, "Hello comment !");
    } catch (IOException e) {
    return false;
    } finally {
    try {
    out.close();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    
    return true;
    }
    
    private static void loadFromXML() {
    Map<String, String> refConfMap = new HashMap();
    Properties cfgPro = new Properties();
    InputStream in;
    try {
    in = new FileInputStream("d://test//test/aa.xml");
    cfgPro.loadFromXML(in );
    
    String vv = (String) cfgPro.get("aa");
    System.out.println(vv);
    
    } catch (FileNotFoundException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    } catch (IOException e) {
    // TODO Auto-generated catch block
    e.printStackTrace();
    }
    }
    

      

  • 相关阅读:
    2017年3月9日上午学习
    3.17上午
    3.16上午
    3.16下午
    3.15
    2017.3.14
    3.14
    217.3.13上午
    2017.4.7-morning
    2017.4.6-afternoon
  • 原文地址:https://www.cnblogs.com/FlyAway2013/p/3558213.html
Copyright © 2011-2022 走看看