使用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類的構(gòu)造函數(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); bitsCN.nET中國(guó)網(wǎng)管博客
            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);
            
            補(bǔ)充
            
            Servlet中可以使用javax.servlet.ServletContext的getResourceAsStream()方法
            
            示例:InputStream in = context.getResourceAsStream(path);
            Properties p = new Properties();
            p.load(in);
            
            完整的示例,可以參考附件文件
            
            如何上傳文件,誰知道請(qǐng)告訴以下。 只好把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網(wǎng)管求職
            ** 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網(wǎng)管軟件下載


            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網(wǎng)管求職
            // ---------------------------------------------- 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國(guó)內(nèi)最早的網(wǎng)管論壇


            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 劉錚 閱讀(208) 評(píng)論(0)  編輯  收藏 所屬分類: JAVA General

          <2025年5月>
          27282930123
          45678910
          11121314151617
          18192021222324
          25262728293031
          1234567

          導(dǎo)航

          統(tǒng)計(jì)

          留言簿(1)

          文章分類(141)

          文章檔案(147)

          搜索

          最新評(píng)論

          主站蜘蛛池模板: 揭西县| 张家口市| 大足县| 错那县| 汶上县| 千阳县| 阿勒泰市| 左权县| 焦作市| 望江县| 都昌县| 万荣县| 客服| 陈巴尔虎旗| 乐清市| 桃园市| 黑水县| 浦江县| 读书| 安义县| 尼勒克县| 新密市| 沽源县| 苍山县| 孙吴县| 玉林市| 深泽县| 莆田市| 隆回县| 个旧市| 文安县| 彰武县| 密山市| 阿拉善右旗| 玛纳斯县| 和静县| 邯郸县| 白银市| 澄城县| 桓台县| 乐安县|