您的位置:首页 > 编程语言 > Java开发

java如何从properties配置文件里面读数据?

2010-06-30 14:33 441 查看
Properties


类已不是新东西了,它在 Java 编程的早期就有了,并且几乎没有什么变化。J2SE 的 Tiger
版本增强了这个类,不仅可以用它在单独一行中指定用等号分隔的多个键-值对,还可以用XML 文件装载和保存这些键-值对。在 驯服
Tiger的这一期文章中,John Zukowski
展示了如何驾驭这匹新一代的“役马”。请在本文对应的讨论论坛上与作者及其他读者分享您对本文的想法(您也可以单击文章顶部或底部的
讨论来访问该论坛)。

J2SE 1.5 以前的版本要求直接使用 XML
解析器来装载配置文件并存储设置。虽然这并非是一件困难的事情,并且解析器是平台的标准部分,但是额外的工作总是有点让人烦。最近更新的
java.util.Properties 类现在提供了一种为程序装载和存储设置的更容易的方法:

loadFromXML(InputStream
is)

和storeToXML(OutputStream
os, String comment)

方法。

Properties 基本知识



如果不熟悉 java.util.Properties 类,那么现在告诉您它是用来在一个文件中存储键-值对的,其中键和值是用等号分隔的,如清单 1
所示。

清单 1. 一组属性示例

foo=bar

fu=baz

将清单 1

装载到 Properties 对象中后,您就可以找到两个键( foo 和 fu )和两个值( foo 的 bar 和 fu 的 baz
)了。这个类支持带 /u 的嵌入 Unicode 字符串,但是这里重要的是每一项内容都当作 String 。

清单 2 显示了如何装载属性文件并列出它当前的一组键和值。只需传递这个文件的 InputStream 给 load()
方法,就会将每一个键-值对添加到 Properties 实例中。然后用 list() 列出所有属性或者用 getProperty()
获取单独的属性。

清单 2. 装载属性


import java.util.*;

import java.io.*;

public class LoadSample {

public static void main(String
args[]) throws Exception {

Properties prop = new Properties();

FileInputStream fis =

new
FileInputStream("sample.properties");

prop.load(fis);

prop.list(System.out);

System.out.println("/nThe foo property: " +

prop.getProperty("foo"));

}

}

运行 LoadSample 程序生成如清单 3 所示的输出。注意 list()
方法的输出中键-值对的顺序与它们在输入文件中的顺序不一样。 Properties 类在一个散列表(hashtable,事实上是一个
Hashtable 子类)中储存一组键-值对,所以不能保证顺序。

清单 3

.
LoadSample 的输出

-- listing properties --

fu=baz

foo=bar

The foo property: bar

XML 属性文件

这里没有什么新内
容。 Properties 类总是这样工作的。不过,新的地方是从一个 XML 文件中装载一组属性。它的 DTD 如清单 4 所示。

清单 4. 属性 DTD

<?xml version="1.0" encoding="UTF-8"?>

<!-- DTD for
properties -->

<!ELEMENT properties ( comment?, entry* ) >

<!ATTLIST
properties version CDATA #FIXED "1.0">

<!ELEMENT comment
(#PCDATA) >

<!ELEMENT entry (#PCDATA) >

<!ATTLIST
entry key CDATA #REQUIRED>

如果不想细读 XML DTD,那么可以告诉您它其实就是说在外围
<properties> 标签中包装的是一个 <comment> 标签,后面是任意数量的 <entry>
标签。对每一个 <entry> 标签,有一个键属性,输入的内容就是它的值。清单 5 显示了 清单 1中的属性文件的 XML
版本是什么样子的。

清单 5. XML 版本的属性文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE
properties SYSTEM "http://java.sun.com/dtd/properties.dtd
">

<properties>

<comment>Hi</comment>

<entry
key="foo">bar</entry>

<entry
key="fu">baz</entry>

</properties>

如果清单 6 所示,读取 XML 版本的 Properties 文件与读取老格式的文件没什么不同。

清单 6. 读取 XML
Properties 文件


import java.util.*;

import java.io.*;

public class LoadSampleXML {

public static void main(String
args[]) throws Exception {

Properties prop = new Properties();

FileInputStream fis =

new FileInputStream("sampleprops.xml");

prop.loadFromXML(fis);

prop.list(System.out);

System.out.println("/nThe foo property: " +

prop.getProperty("foo"));

}

}

关于资源绑定的说明

虽然 java.util.Properties 类现在除了支持键-值对,还支持属性文件作为 XML 文件,不幸的是,没有内置的选项可以将
ResourceBundle 作为一个 XML 文件处理。是的, PropertyResourceBundle 不使用 Properties
对象来装载绑定,不过装载方法的使用是硬编码到类中的,而不使用较新的 loadFromXML() 方法。

运行清单 6 中的程序产生与原来的程序相同的输出,如 清单 2所示。

保存 XML 属性

新的 Properties 还有一个功能是将属性存储到 XML 格式的文件中。虽然 store()
方法仍然会创建一个类似 清单 1 所示的文件,但是现在可以用新的 storeToXML() 方法创建如 清单 5 所示的文件。只要传递一个
OutputStream 和一个用于注释的 String 就可以了。清单 7 展示了新的 storeToXML() 方法。

清单 7. 将 Properties 存储为
XML 文件


import java.util.*;

import java.io.*;

public class StoreXML {

public static void main(String args[])
throws Exception {

Properties prop = new Properties();

prop.setProperty("one-two", "buckle my shoe");

prop.setProperty("three-four", "shut the door");

prop.setProperty("five-six", "pick up sticks");

prop.setProperty("seven-eight", "lay them straight");

prop.setProperty("nine-ten", "a big, fat hen");

FileOutputStream
fos =

new FileOutputStream("rhyme.xml");

prop.storeToXML(fos, "Rhyme");

fos.close();

}

}

运行清单 7 中的程序产生的输出如清单 8 所示。

清单 8. 存储的 XML 文件

<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE
properties SYSTEM "http://java.sun.com/dtd/properties.dtd
">

<properties>

<comment>Rhyme</comment>

<entry
key="seven-eight">lay them straight</entry>

<entry
key="five-six">pick up sticks</entry>

<entry
key="nine-ten">a big, fat hen</entry>

<entry
key="three-four">shut the door</entry>

<entry
key="one-two">buckle my shoe</entry>

</properties>

结束语

使用 XML 文件还是使用老式的 a=b
类型的文件完全取决于您自己。老式文件从内存的角度看肯定是轻量级的。不过,由于 XML 的普遍使用,人们会期望 XML
格式流行起来,因为它已经被广泛使用了,只不过没有用到 Properties 对象。选择完全在您。分析软件包 private XMLUtils
类的源代码以获得关于所使用的 XML 解析的更多信息。

PTest.java

import java.io.FileInputStream;

import
java.io.IOException;

import java.io.InputStream;

import
java.util.Properties;

/**

* 实现properties文件的读取

* @author
bbflyerwww

* @date 2006-08-02

*/

public class PTest {

public static void main(String[] args) {

try {

long start = System.currentTimeMillis();

InputStream is =
new FileInputStream("conf.properties");

Properties p =
new Properties();

p.load(is);

is.close();

System.out.println("SIZE : " + p.size());

System.out.println("homepage : " + p.getProperty("homepage"));

System.out.println("author : " + p.getProperty("author"));

&nbp; System.out.println("school : " + p.getProperty("school"));

System.out.println("date : " + p.getProperty("date"));

long end = System.currentTimeMillis();

System.out.println("Cost : " + (end - start));

} catch
(IOException ioe) {

ioe.printStackTrace();

}

}

}

conf.properties

# Configuration file

homepage = http://hi.baidu.com/bbflyerwww

author
= bbflyerwww

school = WuHan University

date = 2006-08-02

Result

SIZE:4

homepage : http://hi.baidu.com/bbflyerwww

author
: bbflyerwww

school : WuHan University

date : 2006-08-02

Cost :
0

========================================================================

package
com.adrop.util;

import
java.io.*;

import
java.util.Properties;

import
javax.servlet.http.*;

import
javax.servlet.*;

import
javax.servlet.jsp.*;

public
class PropertiesUtil {

private String fileName;

private Properties p;

private FileInputStream in;

private FileOutputStream out;

/**

*
根据传进的文件名载入文件

* @param fileName String

*/

public PropertiesUtil(String fileName) {

this.fileName=fileName;

File file = new File(fileName);

try {

in = new FileInputStream(file);

p = new Properties();

//
载入文件

p.load(in);

in.close();

}

catch (FileNotFoundException e) {

System.err.println("
配置文件
config.properties
找不到!!
");

e.printStackTrace();

}

catch (Exception e) {

System.err.println("
读取配置文件
config.properties
错误!!
");

e.printStackTrace();

}

}

/**

*
配置文件一律为
config.propertities

并且统一放在
web应用的根目录下。

* @return String

*/

public static String getConfigFile(HttpServlet hs) {

return getConfigFile(hs,"config.properties");

}

/**

*

servlet
中使用
,
直接用
this
作为参数
,HttpServlet
类型

*
根据配置文件名从当前
web
应用的根目录下找出配置文件

* @param hs HttpServlet

* @param configFileName String
配置文件名字

* @return String

*/

public static String getConfigFile(HttpServlet hs,
String configFileName) {

String configFile = "";

ServletContext sc = hs.getServletContext();

configFile = sc.getRealPath("/" + configFileName);

if (configFile == null || configFile.equals("")) {

configFile = "/" + configFileName;

}

return configFile;

}

/**

* jsp
中用
pageContext
作参数

* @param hs PageContext

* @param configFileName String
配置文件名字

* @return String

*/

public static String getConfigFile(PageContext hs,
String configFileName) {

String configFile = "";

ServletContext sc = hs.getServletContext();

configFile = sc.getRealPath("/" + configFileName);

if (configFile == null || configFile.equals("")) {

configFile = "/" + configFileName;

}

return configFile;

}

/**

*
列出所有的配置文件内
容<

/span>

*/

public void list() {

p.list(System.out);

}

/**

*
指定配置项名称,返回配置


* @param itemName String

* @return String

*/

public String getValue(String itemName){

return p.getProperty(itemName);

}

/**

*
指定配置项名称和默认值,
返回配置值

* @param itemName String

* @param defaultValue String

* @return String

*/

public String getValue(String itemName,

String defaultValue){

return p.getProperty(itemName,defaultValue);

}

/**

*
设置配置项名称及其值

* @param itemName String

* @param value String

*/

public void setValue(String itemName,String value){

p.setProperty(itemName,value);

return;

}

/**

*
保存配置文件,指定文件名
和抬头描述

* @param fileName String

* @param description String

* @throws Exception

*/

public void saveFile(String fileName,String
description)throws Exception{

try {

File f=new File(fileName);

out

= new FileOutputStream(f);

p.store(out, description);//
保存文件

out.close();

}

t">
catch
(IOException ex) {

throw new Exception

("
无法保存指
定的配置文件
:"+fileName);

}

}

/**

*
保存配置文件,指定文件名

* @param fileName String

* @throws Exception

*/

public void saveFile(String fileName)

throws Exception {

saveFile(fileName,"");

}

/**

*
保存配置文件,采用原文件


* @throws Exception

*/

public void saveFile() throws Exception {

if(fileName.length()==0)

throw new Exception

("
需指定保存
的配置文件名
");

saveFile(fileName);

}

/**

*
删除一个属性

* @param value String

*/

public void deleteValue(String value){

p.remove(value);

}

/**

* main method for test

* @param args String[]

*/

public static void main(String[] args) {

String file = "f://p.properties";

PropertiesUtil pu = new PropertiesUtil(file);

pu.list();

}

}

g="0">

Re:用java从properties配置文件里面读数据

[ 2009-10-27 10:44:00
| By: 访客M62Tl8(游客)

]
学习了,呵呵,谢谢

个人主页 | 引用
| 返

| 删除
| 回复
Re:用java从properties配置文件里面读数据

[ 2008-1-14 20:52:00
| By: 张森的测试用户

]
InputStream
fis=getClass().getResourceAsStream("/property.properties");--这种方法不行。谢谢了,
我已经搞定了,目前找到两种方法与大家分享一下:

◎方法1

FileInputStream fis=new
FileInputStream(getServletContext().getRealPath("/WEB-INF/classes/property.properties"));

◎方法2

InputStream fis=getServletContext().getResourceAsStream
("/WEBINF/classes/property.properties");/*可以利用Servlet.ServletConfig的
getServletContex()的方法后返回ServletContext的对象,再利用ServletContext的
getResourceAsStream()方法并返回InputStream的对象%>*/

将InputStream
fis=getClass().getResourceAsStream("property.properties");

改为
InputStream
fis=getClass().getResourceAsStream(application.getRealPath("/")+"WEB-INF/classesproperty.properties");

个人主页
| 引用
| 返

| 删除
| 回复
Re:用java从properties配置文件里面读数据

[ 2007-12-18 20:49:00
| By: 张森的测试用户

]
代码实例

package
configuration;public class Configuration

...{

private Properties
propertie;

private FileInputStream inputFile;

private
FileOutputStream outputFile;

/** *//**

* 初始化Configuration类

*/

public
Configuration()

...{

propertie = new Properties();

}

/**
*//**

* 初始化Configuration类

* @param filePath 要读取的配置文件的路径+名称

*/

public
Configuration(String filePath)

...{

propertie = new Properties();

try
...{

inputFile = new FileInputStream(filePath);

propertie.load(inputFile);

inputFile.close();

}
catch (FileNotFoundException ex) ...{

System.out.println("读取属性文件
--->失败!- 原因:文件路径错误或者文件不存在");

ex.printStackTrace();

} catch
(IOException ex) ...{

System.out.println("装载文件--->失败!");

ex.printStackTrace();

}

}//end
ReadConfigInfo(...)

以下为张森的测试用户的回复:

今天写了一个读取配置文件信息的程序如下(演示代码不
可用于工程

):

java 代码

public class Config {

private
static Properties prop = new Properties();

static {

try {

//prop.load(Config.class.getResourceAsStream("../../config/config.properties"));

prop.load(Config.class.getResourceAsStream("../aa/config.properties"));

} catch (IOException e) {

System.out.println("文件不存在!");

e.printStackTrace();

}

}

public static String CONNECTION_TYPE =
prop.getProperty("conn_type");

public static String CONNECTION_URL =
prop.getProperty("conn_url");

public static String CONNECTION_USER =
prop.getProperty("conn_user");

public static String CONNECTION_PWD =
prop.getProperty("conn_pwd");

public static String
CONNECTION_DRIVER = prop.getProperty("conn_driver");

public static
String DB_CFG_URL = prop.getProperty("DB_CFG_URL");

public static
String DB_CFG_USER = prop.getProperty("DB_CFG_USER");

public static
String DB_CFG_PASSWORD = prop.getProperty("DB_CFG_PASSWORD");

}

html
代码

<%@ page language="java" import="java.util.*"
pageEncoding="utf-8"%>

<!--CTYPE HTML PUBLIC "-//W3C//DTD HTML
4.01 Transitional//EN"</sp-->>

<%@ page import="com.*"
%>

<html>

<head>

<title>首页title>

head>

<body>

URL名:<%=Config.DB_CFG_URL%><br>

用户
名:<%=Config.DB_CFG_USER%><br>


码:<%=Config.DB_CFG_PASSWORD%>

body>

配置文件的路径如下:1、
WEB-INF----->config------->config.properties

2、WEB-
INF------>classes----->aa----->config.properties

上面的程序可以
读到WEB-INF------>classes----->aa----->config.properties,但读不到WEB-
INF----->config------->config.properties

另外一种实现方式:

java
代码

package com;

import java.io.*;

import
java.util.Properties;

public class FileConfig

{

public
Properties getFileProp()

{

Properties prop = new Properties();

try
{

//File fClass = new File("applications/d

btest/WEB-INF/config/config.properties");

File fClass = new
File("webapps/dbtest/WEB-INF/config/config.properties");

FileInputStream
fis = new FileInputStream(fClass);

prop.load(fis);

} catch
(IOException e) {

System.out.println("文件不存在!");

e.printStackTrace();

}

if(prop != null)

return prop;

else

return null;

}

}

html代码

<%@ page language="java"
import="java.util.*" pageEncoding="utf-8"%>

<%@ page
import="com.FileConfig" %>

<!--CTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN"</sp-->>

<html>

<head>

<title>首页title>

head>

<body>

<%

FileConfig
fc = new FileConfig();

Properties prop = fc.getFileProp();

%>

body>

<%=prop.getProperty("DB_CFG_PASSWORD")%>

<%=prop.getProperty("DB_CFG_USER")%>

<%=prop.getProperty("DB_CFG_URL")%>

第二种方法解决了不能读取
classes上次目录下文件内容的问题。它认的是容器的根目录如:tomcat就是webapps是第一级录,而在weblogic下则是
applications。

如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传
到服务器上就总是出现看不到图片,css样式表失效等错误。这种情况下多半是由于你使用了错误的路径,在应该使用相对路径的地方使用了绝对路径,导致浏览
器无法在指定的位置打开指定的文件。

以下为张森的测试用户的回复:

今天写了一个读取配置文件信息的程序如下(演示代码不
可用于工程

):

java 代码

public class Config {

private
static Properties prop = new Properties();

static {

try {

//prop.load(Config.class.getResourceAsStream("../../config/config.properties"));

prop.load(Config.class.getResourceAsStream("../aa/config.properties"));

} catch (IOException e) {

System.out.println("文件不存在!");

e.printStackTrace();

}

}

public static String CONNECTION_TYPE =
prop.getProperty("conn_type");

public static String CONNECTION_URL =
prop.getProperty("conn_url");

public static String CONNECTION_USER =
prop.getProperty("conn_user");

public static String CONNECTION_PWD =
prop.getProperty("conn_pwd");

public static String
CONNECTION_DRIVER = prop.getProperty("conn_driver");

public static
String DB_CFG_URL = prop.getProperty("DB_CFG_URL");

public static
String DB_CFG_USER = prop.getProperty("DB_CFG_USER");

public static
String DB_CFG_PASSWORD = prop.getProperty("DB_CFG_PASSWORD");

}

html
代码

<%@ page language="java" import="java.util.*"
pageEncoding="utf-8"%>

<!--CTYPE HTML PUBLIC "-//W3C//DTD HTML
4.01 Transitional//EN"</sp-->>

<%@ page import="com.*"
%>

<html>

<head>

<title>首页title>

head>

<body>

URL名:<%=Config.DB_CFG_URL%><br>

用户
名:<%=Config.DB_CFG_USER%><br>


码:<%=Config.DB_CFG_PASSWORD%>

body>

配置文件的路径如下:1、
WEB-INF----->config------->config.properties

2、WEB-
INF------>classes----->aa----->config.properties

上面的程序可以
读到WEB-INF------>classes----->aa----->config.properties,但读不到WEB-
INF----->config------->config.properties

另外一种实现方式:

java
代码

package com;

import java.io.*;

import
java.util.Properties;

public class FileConfig

{

public
Properties getFileProp()

{

Properties prop = new Properties();

try
{

//File fClass = new
File("applications/dbtest/WEB-INF/config/config.properties");

File
fClass = new File("webapps/dbtest/WEB-INF/config/config.properties");

FileInputStream
fis = new FileInputStream(fClass);

prop.load(fis);

} catch
(IOException e) {

System.out.println("文件不存在!");

e.printStackTrace();

}

if(prop != null)

return prop;

else

return null;

}

}

html代码

<%@ page language="java"
import="java.util.*" pageEncoding="utf-8"%>

<%@ page
import="com.FileConfig" %>

<!--CTYPE HTML PUBLIC "-//W3C//DTD
HTML 4.01 Transitional//EN"</sp-->>

<html>

<head>

<title>首页title>

head>

<body>

<%

FileConfig
fc = new FileConfig();

Properties prop = fc.getFileProp();

%>

body>

<%=prop.getProperty("DB_CFG_PASSWORD")%>

<%=prop.getProperty("DB_CFG_USER")%>

<%=prop.getProperty("DB_CFG_URL")%>

第二种方法解决了不能读取
classes上次目录下文件内容的问题。它认的是容器的根目录如:tomcat就是webapps是第一级录,而在weblogic下则是
applications。

如果您刚刚开始接触网页设计,是不是经常发生这样的问题呢?做好的网页在自己机器上可以正常浏览,而把页面传
到服务器上就总是出现看不到图片,css样式表失效等错误。这种情况下多半是由于你使用了错误的路径,在应该使用相对路径的地方使用了绝对路径,导致浏览
器无法在指定的位置打开指定的文件。

以下为张森的测试用户的回复:

用java从properties配置文件里面读数据
-Servlet

第一步:配置文件

1. web.xml

<servlet>

<servlet-name>InitServlet</servlet-name>

<servlet-class>com.0734w.util.InitServlet</servlet-class>

<init-param>

<param-name>config</param-name>

<param-value>/WEB-INF/config.properties</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

</servlet>

2.config.properties


若在config.properties配置如下

app1.name=dog

app2.name=pig

3.在
Constants.java中定义

public final static String APP1NAME = "app1.name";

public
final static String APP2NAME = "app2.name";

第二步:定义InitServlet

package
com.0734w.util;

import java.io.IOException;

import
java.io.InputStream;

import java.util.PropertyResourceBundle;

import
javax.servlet.ServletContext;

import javax.servlet.ServletException;

import
javax.servlet.http.HttpServlet;

import org.apache.log4j.Logger;

import
com.cpic.adapter.adapterapp.constant.Constants;

/**

*
<p>Title:InitServlet.java</p>

*
<p>Description:当应用起动时加载要读取的数据放入context中</p>

*
@author spark 2005-12-26

* @version 1.0

*/

public class
InitServlet extends HttpServlet {

private Logger logger;

public
void init() throws ServletException{

super.init();

ServletContext
context = getServletContext();

context.setAttribute(Constants.ADAPTER_INIT_STATUS,Boolean.FALSE);

//initialize proxy configuration

initAdapter();

context.setAttribute(Constants.ADAPTER_INIT_STATUS,Boolean.TRUE);

logger.info("initAdapter
initialized successfully");

}

/**

*
<p>Description:加载和设置数据</p>

* @throws ServletException

*
spark 2005-12-26

*/

private void initAdapter() throws
ServletException{

ServletContext context = getServletContext();

String
configFile = getInitParameter("config");

if (configFile == null) {

String
errMsg="Initialize Adapter configuration config file is not set in
web.xml.";

logger.error(errMsg);

ServletException e = new
ServletException(errMsg);

throw e;

}

InputStream in;

PropertyResourceBundle
configBundle;

try {

in =
this.getServletContext().getResourceAsStream(configFile);

configBundle
= new PropertyResourceBundle(in);

//需要读取的数据每一个数据都要从这里 定义
context.setAttribute(Constants.APP1NAME,configBundle.getString(Constants.APP1NAME));

context.setAttribute(Constants.APP2NAME,configBundle.getString(Constants..APP2NAME));

}
catch (IOException e) {

String errMsg = "Initialize adapter
config.properties failed.";

logger.error(errMsg);

ServletException
e1 = new ServletException(errMsg);

throw e1;

}

catch
(Exception e) {

String errMsg = "Initialize adapter config.properties
failed.";

logger.error(errMsg);

ServletException e1 = new
ServletException(errMsg);

throw e1;

}

}

}

第三
步,在应用利用:<

br />在servlet中如下:

ServletContext
context = getServletContext();

( String)
context.getAttribute(Constants.APP1NAME)

在STRUTS的ACTION中如下:

ServletContext
context = request.getSession().getServletContext();

(String)
context.getAttribute(Constants.APP1NAME);

以下为张森的测试用户的回复:

使用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);

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: