报课、招生咨询电话:010-51268840/41

首页 > 计算机考试 > JAVA考试认证 >
→论坛登陆 用户名  密码  
使用J2SEAPI读取Properties文件的方法

作者: 发布时间:2008-06-03 15:32:07 来源:育路计算机考试
 1、使用java.util.Properties类的load()方法

  示例:

  cellspacing="0" cellpadding="2" bordercolorlight = "black" bordercolordark = "#FFFFFF" align="center"> 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);
  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);

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

   }

   //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";
  p = JProperties.loadProperties
  (name, JProperties.BY_PROPERTIES);
  assertEquals
  (value, p.getProperty(key));
  name = "com.kindani.test.LocalStrings";
  p = 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";
  p = JProperties.loadProperties(name, JProperties.BY_PROPERTYRESOURCEBUNDLE);
  assertEquals(value, p.getProperty(key));
  assertEquals(value,
  ((JProperties.ResourceBundleAdapter)p).
  getString(key));

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

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

   name = "test\\LocalStrings.properties";
  p = 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:

    育路网

 
 
                                        
评论】【加入收藏夹】【 】【打印】【关闭
育路网2007年夏令营联展
 更多有关新闻:
 
·[考试动态2008年医师资格考试网上报名须知 ·[考试动态2008年医师资格考试3月10日开始网
·[考试动态卫生部医师资格考试委员会公告 ·[考试动态2008年医师考试于9月20至21进行
·[考试动态关于北京考区2008年度国家医师资 ·[考试动态崇文区卫生局关于北京考区2008年
·[考试动态丰台区卫生局关于北京考区2008年 ·[考试动态2008年上海市医师资格考试(考区
·[考试动态2008年医师资格考试(天津考区) ·[考试动态惠州市卫生局关于2008医师资格考
·[考试动态无锡市关于2008年医师资格考试网 ·[考试动态关于珠海市2008年医师资格考试的
·[考试动态韶关市关于2008年医师资格考试网 ·[考试动态深圳市关于2008年医师资格考试深
·[考试动态杭州市卫生局关于2008年医师资格 ·[考试动态丽水市关于2008年医师资格考试报
发表评论
用户名: 密码:
验证码: 匿名发表
课程搜索:
选择分类:
课程关键字:
课程 学校
 2008年首都高校秋季招生
北京理工大学2008年招生简章
北京文理研修学院2008年招生简章
北京建设大学2008年招生简章
北京中山学院2008年招生简章
北京城市学院2008年招生简章
培黎职业学院2008年招生简章
北京金融学院2008年招生简章
北京吉利大学2008年招生简章
北方工商管理学院2008年招生简章
 本周推荐课程
·初中起点雅思半年脱产 ·启德雅思6分冲刺课程
·新概念1+2册慢速精讲课 ·环球新托福100分强化
·北文王长喜四级强化班 ·英语四、六级培训课程
·海文考研数学课程 ·海文考研英语课程
·北大企业管理高级研修班 ·清华企业领导人研修班
·中美高中生交换项目 ·北工大中加学院2+2本科
·劳动和社会保障部物流师 ·物业管理师职业培训
·市场营销经理国际资格 ·现场管理实务培训
清华大学留学
中法管理硕士预科班
课程咨询热线:010-51268840 51268841
 最新新闻
·2008年乌鲁木齐市将招考376名公务员
·陕西公务员面试分数确定空缺职位调剂办法
·新疆区确定公务员招考笔试加分对象和标准
·2009年公务员考试申论热点:抗震救灾信息公开
·新疆:2007年1月20日地方公务员考试面试真题
·新疆:2007年1月21日地方公务员考试面试真题
·新疆:2007年1月22日地方公务员考试面试真题
·新疆:2007年8月20-21日公务员考试面试真题
·河南:2008年法检系统招考《申论》备考指南
·湖南:08年长沙市考录公务员有关面试事宜的通
 育路社区            进入>>
 
学员报名服务中心: 北京北三环西路32号恒润中心1806(交通位置图
咨询电话:北京- 010-51268840/41 传真:010-51418040 上海-021-64392659、64397431
育路网-中国新锐教育社区: 北京站 | 上海站 | 郑州站| 武汉站
本站法律顾问: 邱清荣律师
北京育路互联科技有限公司版权所有 | 京ICP备05012189号