使用J2SE API讀取Properties文件的六種方法

          使用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類的構造函數
            
            示例: 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); bitsCN.nET中國網管博客
            Properties p = new Properties();
            p.load(in);
            
            6.使用java.lang.ClassLoader類的getSystemResourceAsStream()靜態方法
            
            示例: 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);
            
            完整的示例,可以參考附件文件
            
            如何上傳文件,誰知道請告訴以下。 只好把source都貼上來了
            
            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 09hr.com網管求職
            ** 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.

          bitsCN_com


            */
            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);
            p = new ResourceBundleAdapter(rb);
            } else if (type == BY_PROPERTYRESOURCEBUNDLE) {
            in = new BufferedInputStream(new FileInputStream(name));
            assert (in != null);

          DL.bitsCN.com網管軟件下載


            ResourceBundle rb = new PropertyResourceBundle(in);
            p = 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;
            
            }
             09hr.com網管求職
            // ---------------------------------------------- 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) {

          BBS.bitsCN.com國內最早的網管論壇


            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<String> 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);
            }
            
            }
            
            }
          Play.bitsCN.com小游戲

            
            
            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

          posted on 2007-11-01 17:54 劉錚 閱讀(211) 評論(0)  編輯  收藏 所屬分類: JAVA General

          <2025年7月>
          293012345
          6789101112
          13141516171819
          20212223242526
          272829303112
          3456789

          導航

          統計

          留言簿(1)

          文章分類(141)

          文章檔案(147)

          搜索

          最新評論

          主站蜘蛛池模板: 林周县| 永宁县| 静海县| 衡水市| 峨眉山市| 长岭县| 汤原县| 永定县| 达州市| 木兰县| 正镶白旗| 商洛市| 安宁市| 怀安县| 三都| 塔河县| 航空| 宝鸡市| 大邑县| 南部县| 砀山县| 静乐县| 彭州市| 禹州市| 赞皇县| 宾阳县| 靖宇县| 泸定县| 大庆市| 泾川县| 赤壁市| 潼关县| 邳州市| 乌苏市| 葫芦岛市| 定安县| 青冈县| 饶河县| 马鞍山市| 万安县| 合江县|