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

Java程序使用属性文件的经验

2014-09-30 22:28 411 查看
Java类库(java.util.Properties)提供了读取和解析属性文件,它的行格式为name=value,例如:

MySQL.properties

user=user1

password=password1

host=localhost

Java程序可读取该属性文件来获得连接参数。

在命令行运行环境中,属性文件可通过如下方式之一被找到:

1. 属性文件位于CLASSPATH环境变量所指明的目录下

2. 在程序中使用完整路径的路径名来指定它

在Eclipse的工程中,属性文件应该存放在那里才合适呢?以下给出一个推荐做法。

1. 属性文件只被一个package 中的java源文件使用

把属性文件和java源文件放在同一目录(src/com/pkg1/test)并加入工程。build工程时,属性文件会被自动拷贝到bin/your_package目录中。

java源程序调用getResourceAsStream(MySQL.properties)。

2. 属性文件被多个package中的java源文件使用

在src目录下新建res目录,用来存放无需编译的资源。它可以看作为"precompiled class"目录。把属性文件放在res目录中。build工程时,res目录会被自动拷贝到bin目录中。

java源程序调用getResourceAsStream(/res/MySQL.properties)。

Eclipse项目的.classpath定义如下:

<classpath>

<classpathentry kind="src" path="src"/>
# 源文件根目录

<classpathentry kind="output" path="bin"/>
# .class编译输出的根目录

</classpath>

bin也是Eclipse工程运行时根目录,绝对资源路径都是以它为起点。

可参考JDK手册了解name参数格式

public InputStream getResourceAsStream(String name)

工程示例

代码实例

ReadPropsFile1.java --

<span style="font-size:12px;">package com.pkg1.test;

// This program demonstrates how to read a Java properties file to
// get MySQL connection parameters.

//#@ _FRAG_
import java.util.*;   // need this for properties file support

public class ReadPropsFile1
{
public static void main (String[] args)
{
String url = null;
String propsFile = "MySQL.properties";
Properties props = new Properties ();

try
{
props.load (ReadPropsFile1.class.getResourceAsStream (propsFile));
}
catch (Exception e)
{
System.err.println ("Cannot read properties file");
System.exit (1);
}

// construct connection URL, encoding username
// and password as parameters at the end
url = "jdbc:mysql://"
+ props.getProperty ("host")
+ "/cookbook"
+ "?user=" + props.getProperty ("user")
+ "&password=" + props.getProperty ("password");
System.out.println (url);
}
}
//#@ _FRAG_</span>


ReadPropsFile2.java --

<span style="font-size:12px;">package com.pkg2.test;

// This program demonstrates how to read a Java properties file to
// get MySQL connection parameters.

//#@ _FRAG_
import java.util.*;   // need this for properties file support

public class ReadPropsFile2
{
public static void main (String[] args)
{
String url = null;
String propsFile = "/res/MySQL.properties";
Properties props = new Properties ();

try
{
props.load (ReadPropsFile2.class.getResourceAsStream (propsFile));
}
catch (Exception e)
{
System.err.println ("Cannot read properties file");
System.exit (1);
}

// construct connection URL, encoding username
// and password as parameters at the end
url = "jdbc:mysql://"
+ props.getProperty ("host")
+ "/cookbook"
+ "?user=" + props.getProperty ("user")
+ "&password=" + props.getProperty ("password");
System.out.println (url);
}
}
//#@ _FRAG_
</span>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐