使用J2SE API读取Properties文件的六种方法(2)

2008-02-23 09:36:36来源:互联网 阅读 ()

新老客户大回馈,云服务器低至5折


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 = "\\com\\kindani\\test\\LocalStrings.properties";
p = JProperties.loadProperties(name, JProperties.BY_SYSTEM_CLASSLOADER);
assertEquals(value, p.getProperty(key));

name = "\\com\\kindani\\test\\LocalStrings.properties";

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:反思以前对“多对多”关系处理的设计

下一篇:java函数传值的一点心得