- 浏览: 127434 次
- 性别:
- 来自: 广州
文章分类
最新评论
-
20082233:
你能详细解释下代码的意思吗?谢谢
js时间日期格式化 -
zhoche2008:
好文章,解决了我的问题
swt执行线程 -
hanyafei:
朋友,你那第二个选择之后出错,你那是正确的吗?
JSP+AJAX三级级联及更多级的实现 -
EdenWang:
哥们,这能显示么?
strut2异常问题的解决 -
JavaLanguageFun:
标记一下 ,这个不错。
eclipse插件大全介绍,以及下载地址(转)
转载自:http://www.java2000.net/p8572
使用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);
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文件
JPropertiesTest.java文件
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:
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);
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<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); } } }
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 = "file://com//kindani//test//LocalStrings.properties"; p = JProperties.loadProperties(name, JProperties.BY_SYSTEM_CLASSLOADER); assertEquals(value, p.getProperty(key)); name = "file://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:
import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.InputStream; import java.util.Properties; import java.util.ResourceBundle; /** * 操作属性文件.<br> * 可以为我们的程序带来更方便的移植性,下面是一个示例,可以读、写、更改属性<br> * 读采用了两种方式,一种是采用Properties类<br> * 另外一种是采用资源绑定类ResourceBundle类<br> * 下面是源程序,里面有详细的注释: * * @author 赵学庆 <A href="www.java2000.net" target=_blank>www.java2000.net</A> */ public class OperatePropertiesFile { public OperatePropertiesFile () { } /** * 采用Properties类取得属性文件对应值 * * @parampropertiesFileNameproperties文件名,如a.properties * @parampropertyName属性名 * @return根据属性名得到的属性值,如没有返回"" */ public static String getValueByPropertyName(String propertiesFileName, String propertyName) { String s = ""; Properties p = new Properties();// 加载属性文件读取类 FileInputStream in; try { // propertiesFileName如test.properties in = new FileInputStream(propertiesFileName);// 以流的形式读入属性文件 p.load(in);// 属性文件将该流加入的可被读取的属性中 in.close();// 读完了关闭 s = p.getProperty(propertyName);// 取得对应的属性值 } catch (Exception e) { e.printStackTrace(); } return s; } /** * 采用ResourceBundel类取得属性文件对应值,这个只能够读取,不可以更改及写新的属性 * * @parampropertiesFileNameWithoutPostfixproperties文件名,不带后缀 * @parampropertyName属性名 * @return根据属性名得到的属性值,如没有返回"" */ public static String getValueByPropertyName_(String propertiesFileNameWithoutPostfix, String propertyName) { String s = ""; // 如属性文件是test.properties,那此时propertiesFileNameWithoutPostfix的值就是test ResourceBundle bundel = ResourceBundle.getBundle(propertiesFileNameWithoutPostfix); s = bundel.getString(propertyName); return s; } /** * 更改属性文件的值,如果对应的属性不存在,则自动增加该属性 * * @parampropertiesFileNameproperties文件名,如a.properties * @parampropertyName属性名 * @parampropertyValue将属性名更改成该属性值 * @return是否操作成功 */ public static boolean changeValueByPropertyName(String propertiesFileName, String propertyName, String propertyValue) { boolean writeOK = true; Properties p = new Properties(); InputStream in; try { in = new FileInputStream(propertiesFileName); p.load(in);// in.close(); p.setProperty(propertyName, propertyValue);// 设置属性值,如不属性不存在新建 // p.setProperty("testProperty","testPropertyValue"); FileOutputStream out = new FileOutputStream(propertiesFileName);// 输出流 p.store(out, "");// 设置属性头,如不想设置,请把后面一个用""替换掉 out.flush();// 清空缓存,写入磁盘 out.close();// 关闭输出流 } catch (Exception e) { e.printStackTrace(); } return writeOK; } }
发表评论
-
浅复制与深复制概念
2010-09-28 11:00 7041.浅复制与深复制概念 ⑴浅复制(浅克隆) 被复制对象的所有变 ... -
Java基础:Java开发中的23种设计模式
2009-10-26 10:07 5441、工厂模式:客户类和工厂类分开。消费者任何时候需要某种产品, ... -
java中120个经典问题(1)
2009-10-26 10:03 7031.抽象:抽象就是忽略一个主题中与当前目标无关的那些方面,以便 ... -
EXE4J
2009-10-17 16:49 1919进入exe4j的网站 http://www ... -
Clone 方法的使用(深度克隆)
2009-10-16 09:14 700转载自:http://www.java2000.net/p12 ... -
MANIFEST.MF 文件内容详解
2009-10-15 19:21 699MANIFEST.MF 文件内容详解 打开 ... -
一段最简单的生成不重复随机数的程序
2009-10-15 18:44 903转载:http://www.java2000.net/p711 ... -
java 获取当前路径方法
2009-10-15 16:45 2078import java.io.File; /** * ... -
Java做的注册模块
2009-10-10 14:29 831转载自:http://blog.csdn.net/baohui ... -
java操作注册表
2009-10-10 14:26 776/** *@Author *@Date Oct 10, 2 ... -
Java编程那些事儿108——网络编程示例1
2009-06-24 10:01 646陈跃峰 出自:http://blog.csdn.net ... -
Java IO处理类的汇总
2009-05-21 22:41 719http://www.java2000.net/p1225 ... -
Java对象的序列化和反序列化
2009-05-20 23:43 673转载:http://www.java2000.net/p134 ... -
java写文件方法之比较
2009-05-20 23:37 1612import java.io.BufferedOutputSt ... -
Java图像传输方法
2009-05-18 12:07 3100在研发B/S视频系统时候涉及到了图片在网络中的传输,研究了一些 ... -
算术运算符部分=晋升
2009-05-15 23:17 718在算术运算符部分,需要特别注意的一个语法现象是“晋升”。晋升指 ... -
JDK1.5新特性
2009-05-09 21:32 840今天浏览了jdk1.5的新特性: 泛型: public c ... -
编写Java动态代理的步骤
2009-05-08 17:29 879编写Java动态代理的步骤如下: 1.创建一个实现接口 ... -
每个初学者都应该搞懂的几个问题?
2009-05-07 19:56 563转载自:http://flustar.itey ... -
eclipse插件大全介绍,以及下载地址(转)
2009-02-24 17:22 3234好东西先放好先^_^ Eclipse及其插 ...
相关推荐
J2SE API读取Properties文件六种方法,相当经典。
API读取Properties文件的六种方法2009-03-02 08:57使用J2SE API读取Properties文件的六种方法 1。使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream...
NULL 博文链接:https://hailong886.iteye.com/blog/297368
j2se api 中文版 j2se api 中文版 j2se api 中文版
J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API、J2SE_API
J2SE基本上是Java开发人员必学的基础技能之一,对于J2SE需要经常查询提供类库的使用方法。这里提供了中文版本的J2SE API速查手册,方便开发人员的查询和学习
JAVA API的中文版。 老实说,把这么好的东西共享出来,是需要很大的勇气,和很无私的精神的。我打赌我上传了这本资料之后,马上会后悔
j2se中文API,详细介绍基础的类以及方法
j2se中文api.rar
J2SE API CHM格式,第二个压缩文件,由于50兆上传限制
真正的j2se api 5.0 中文版帮助,有需要的可以下载.
j2se api中文资料,也是网上找的,可能很多人都有了
官方的中文J2SE api文档,java开发人员必备。
j2se API 1.5 文档
提供的是j2se API1.6中文版,学习Java必须的学会查API文档
J2SE API 中文版,使用手册,制作者:碧海蓝天 chm格式的
J2SE api开发文档。此文档对java程序员是不可或缺的。希望给需要的朋友带来帮助。