<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 66,comments - 41,trackbacks - 0
    使用J2SE API讀取Properties文件的六種方法

    1。使用java.util.Properties類的load()方法
    示例:
    InputStream in = lnew BufferedInputStream(new FileInputStream(name)); 
    Properties p 
    = new Properties(); 
    p.load(in); 
    2。使用java.util.ResourceBundle類的getBundle()方法
    示例:
    ResourceBundle rb = ResourceBundle.getBundle(name, Locale.getDefault()); 
    3。使用java.util.PropertyResourceBundle類的構造函數(shù)
    示例:
    InputStream in = new BufferedInputStream(new FileInputStream(name)); 
    ResourceBundle rb 
    = new PropertyResourceBundle(in); 

    4。使用class變量的getResourceAsStream()方法
    示例:

    InputStream in = JProperties.class.getResourceAsStream(name); 
    Properties p 
    = new Properties(); 
    p.load(in); 
    5。使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法
    示例:
    InputStream in = JProperties.class.getClassLoader().getResourceAsStream(name); 
    Properties p 
    = new Properties(); 
    p.load(in); 
    6。使用java.lang.ClassLoader類的getSystemResourceAsStream()靜態(tài)方法
    示例:
    InputStream in = ClassLoader.getSystemResourceAsStream(name); 
    Properties p 
    = new Properties(); 
    p.load(in); 
     補充

    Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
    示例:
    InputStream in = context.getResourceAsStream(path); 
    Properties p 
    = new Properties(); 
    p.load(in); 


    完整示例:JProperties.java文件
    /** 
    ** This program is free software. 
    ** 
    ** You may redistribute it and/or modify it under the terms of the GNU 
    ** General Public License as published by the Free Software Foundation. 
    ** Version 2 of the license should be included with this distribution in 
    ** the file LICENSE, as well as License.html. If the license is not 
    ** included with this distribution, you may find a copy at the FSF web 
    ** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the 
    ** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA. 
    ** 
    ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, 
    ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR 
    ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY 
    ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR 
    ** REDISTRIBUTION OF THIS SOFTWARE. 
    *
    */
     

    package com.kindani; 

    //import javax.servlet.ServletContext; 
    import java.util.*
    import java.io.InputStream; 
    import java.io.IOException; 
    import java.io.BufferedInputStream; 
    import java.io.FileInputStream; 

    /** 
    * 使用J2SE API?取Properties文件的六?方法 
    * User: SYNFORM 
    * Date: 2005/07/12 
    * Time: 18:40:55 
    * To change this template use File | Settings | File Templates. 
    */
     
    public class JProperties 

    public final static int BY_PROPERTIES = 1
    public final static int BY_RESOURCEBUNDLE = 2
    public final static int BY_PROPERTYRESOURCEBUNDLE = 3
    public final static int BY_CLASS = 4
    public final static int BY_CLASSLOADER = 5
    public final static int BY_SYSTEM_CLASSLOADER = 6

    public final static Properties loadProperties(final String name, final int type) throws IOException 
    Properties p 
    = new Properties(); 
    InputStream in 
    = null
    if (type == BY_PROPERTIES) 
    in 
    = new BufferedInputStream(new FileInputStream(name)); 
    assert (in != null); 
    p.load(in); 
    }
     else if (type == BY_RESOURCEBUNDLE) 
    ResourceBundle rb 
    = ResourceBundle.getBundle(name, Locale.getDefault()); 
    assert (rb != null); 
    = new ResourceBundleAdapter(rb); 
    }
     else if (type == BY_PROPERTYRESOURCEBUNDLE) 
    in 
    = new BufferedInputStream(new FileInputStream(name)); 
    assert (in != null); 
    ResourceBundle rb 
    = new PropertyResourceBundle(in); 
    = new ResourceBundleAdapter(rb); 
    }
     else if (type == BY_CLASS) 
    assert (JProperties.class.equals(new JProperties().getClass())); 
    in 
    = JProperties.class.getResourceAsStream(name); 
    assert (in != null); 
    p.load(in); 
    // return new JProperties().getClass().getResourceAsStream(name); 
    }
     else if (type == BY_CLASSLOADER) 
    assert (JProperties.class.getClassLoader().equals(new JProperties().getClass().getClassLoader())); 
    in 
    = JProperties.class.getClassLoader().getResourceAsStream(name); 
    assert (in != null); 
    p.load(in); 
    // return new JProperties().getClass().getClassLoader().getResourceAsStream(name); 
    }
     else if (type == BY_SYSTEM_CLASSLOADER) 
    in 
    = ClassLoader.getSystemResourceAsStream(name); 
    assert (in != null); 
    p.load(in); 
    }
     

    if (in != null
    in.close(); 
    }
     
    return p; 

    }
     

    // ---------------------------------------------- servlet used 
    /* 
    public static Properties loadProperties(ServletContext context, String path) throws IOException { 
    assert (context != null); 
    InputStream in = context.getResourceAsStream(path); 
    assert (in != null); 
    Properties p = new Properties(); 
    p.load(in); 
    in.close(); 
    return p; 

    */
     
    // ---------------------------------------------- support class 

    /** 
    * ResourceBundle Adapter class. 
    */
     
    public static class ResourceBundleAdapter extends Properties 
    public ResourceBundleAdapter(ResourceBundle rb) 
    assert (rb instanceof java.util.PropertyResourceBundle); 
    this.rb = rb; 
    java.util.Enumeration e 
    = rb.getKeys(); 
    while (e.hasMoreElements()) 
    Object o 
    = e.nextElement(); 
    this.put(o, rb.getObject((String) o)); 
    }
     
    }
     

    private ResourceBundle rb = null

    public ResourceBundle getBundle(String baseName) 
    return ResourceBundle.getBundle(baseName); 
    }
     

    public ResourceBundle getBundle(String baseName, Locale locale) 
    return ResourceBundle.getBundle(baseName, locale); 
    }
     

    public ResourceBundle getBundle(String baseName, Locale locale, ClassLoader loader) 
    return ResourceBundle.getBundle(baseName, locale, loader); 
    }
     

    public Enumeration getKeys() 
    return rb.getKeys(); 
    }
     

    public Locale getLocale() 
    return rb.getLocale(); 
    }
     

    public Object getObject(String key) 
    return rb.getObject(key); 
    }
     

    public String getString(String key) 
    return rb.getString(key); 
    }
     

    public String[] getStringArray(String key) 
    return rb.getStringArray(key); 
    }
     

    protected Object handleGetObject(String key) 
    return ((PropertyResourceBundle) rb).handleGetObject(key); 
    }
     

    }
     

    }
     


    JPropertiesTest.java文件 

    /** 
    ** This program is free software. 
    ** 
    ** You may redistribute it and/or modify it under the terms of the GNU 
    ** General Public License as published by the Free Software Foundation. 
    ** Version 2 of the license should be included with this distribution in 
    ** the file LICENSE, as well as License.html. If the license is not 
    ** included with this distribution, you may find a copy at the FSF web 
    ** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the 
    ** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA. 
    ** 
    ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND, 
    ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR 
    ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY 
    ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR 
    ** REDISTRIBUTION OF THIS SOFTWARE. 
    *
    */
     
    package com.kindani.test; 

    import junit.framework.*
    import com.kindani.JProperties; 

    //import javax.servlet.ServletContext; 
    import java.util.Properties; 

    public class JPropertiesTest extends TestCase 
    JProperties jProperties; 
    String key 
    = "helloworld.title"
    String value 
    = "Hello World!"

    public void testLoadProperties() throws Exception 
    String name 
    = null
    Properties p 
    = new Properties(); 

    name 
    = "C:\\IDEAP\\Properties4Methods\\src\\com\\kindani\\test\\LocalStrings.properties"
    = JProperties.loadProperties(name, JProperties.BY_PROPERTIES); 
    assertEquals(value, p.getProperty(key)); 

    name 
    = "com.kindani.test.LocalStrings"
    = JProperties.loadProperties(name,JProperties.BY_RESOURCEBUNDLE); 
    assertEquals(value, p.getProperty(key)); 
    assertEquals(value,((JProperties.ResourceBundleAdapter)p).getString(key)); 

    name 
    = "C:\\IDEAP\\Properties4Methods\\src\\com\\kindani\\test\\LocalStrings.properties"
    = JProperties.loadProperties(name, JProperties.BY_PROPERTYRESOURCEBUNDLE); 
    assertEquals(value, p.getProperty(key)); 
    assertEquals(value,((JProperties.ResourceBundleAdapter)p).getString(key)); 

    name 
    = "\\com\\kindani\\test\\LocalStrings.properties"
    = JProperties.loadProperties(name, JProperties.BY_SYSTEM_CLASSLOADER); 
    assertEquals(value, p.getProperty(key)); 

    name 
    = "\\com\\kindani\\test\\LocalStrings.properties"
    = JProperties.loadProperties(name, JProperties.BY_CLASSLOADER); 
    assertEquals(value, p.getProperty(key)); 

    name 
    = "test\\LocalStrings.properties"
    = JProperties.loadProperties(name, JProperties.BY_CLASS); 
    assertEquals(value, p.getProperty(key)); 
    }
     

    /* 
    public void testLoadProperties2() throws Exception { 
    ServletContext context = null; 
    String path = null; 
    Properties p = null; 
    path = "/WEB-INF/classes/LocalStrings.properties"; 
    p = JProperties.loadProperties(context, path); 
    assertEquals(value, p.getProperty(key)); 

    */
     
    }
     

    properties文件與JPropertiesTest.java文件相同的目錄下 
    LocalStrings.properties文件 
    # $Id: LocalStrings.properties,v 
    1.1 2000/08/17 00:57:52 horwat Exp $ 

    # Default localized resources 
    for example servlets 
    # This locale is en_US 

    helloworld.title
    =Hello World! 

    requestinfo.title
    =Request Information Example 
    requestinfo.label.method
    =Method: 
    requestinfo.label.requesturi
    =Request URI: 
    requestinfo.label.protocol
    =Protocol: 
    requestinfo.label.pathinfo
    =Path Info: 
    requestinfo.label.remoteaddr
    =Remote Address: 

    requestheader.title
    =Request Header Example 

    requestparams.title
    =Request Parameters Example 
    requestparams.params
    -in-req=Parameters in this request: 
    requestparams.no
    -params=No Parameters, Please enter some 
    requestparams.firstname
    =First Name: 
    requestparams.lastname
    =Last Name: 

    cookies.title
    =Cookies Example 
    cookies.cookies
    =Your browser is sending the following cookies: 
    cookies.no
    -cookies=Your browser isn't sending any cookies 
    cookies.make-cookie=Create a cookie to send to your browser 
    cookies.name
    =Name: 
    cookies.value
    =Value: 
    cookies.set
    =You just sent the following cookie to your browser: 

    sessions.title
    =Sessions Example 
    sessions.id
    =Session ID: 
    sessions.created
    =Created: 
    sessions.lastaccessed
    =Last Accessed: 
    sessions.data
    =The following data is in your session: 
    sessions.adddata
    =Add data to your session 
    sessions.dataname
    =Name of Session Attribute: 
    sessions.datavalue
    =Value of Session Attribute:


    MSN:
    posted on 2007-12-23 23:09 kylixlu 閱讀(279) 評論(0)  編輯  收藏 所屬分類: J2SE
    主站蜘蛛池模板: 色www免费视频| 四虎影视精品永久免费网站| 一级成人生活片免费看| 亚洲五月综合网色九月色| 亚洲人成网站在线播放影院在线| 免费一区二区视频| 女人被免费视频网站| 19禁啪啪无遮挡免费网站| 18禁超污无遮挡无码免费网站| 黄页网站在线观看免费| 亚洲日韩精品国产3区| 亚洲伊人色一综合网| 亚洲视屏在线观看| 亚洲国产天堂在线观看| 久久综合九九亚洲一区| 亚洲一区二区三区影院| 亚洲熟女乱综合一区二区| 免费人成网站在线高清| 国产精品久久香蕉免费播放| 大学生高清一级毛片免费| 免费可以在线看A∨网站| 五月婷婷综合免费| 青青青免费国产在线视频小草| 99久9在线|免费| **一级一级毛片免费观看| 午夜不卡久久精品无码免费 | 91免费福利精品国产| 成人性生交大片免费看中文| 国产成人精品免费大全| 国产JIZZ中国JIZZ免费看| yellow视频免费在线观看| 久久久精品视频免费观看| 久久精品无码专区免费| 成全动漫视频在线观看免费高清版下载| 国产日韩久久免费影院| 在线免费视频你懂的| 国产精品网站在线观看免费传媒 | 亚洲av无码精品网站| 久久亚洲精品中文字幕| 91亚洲国产成人久久精品网址| 亚洲一区免费在线观看|