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

java读取properties文件

2016-03-02 09:54 459 查看
一、在src目录下面建立一个test.properties的测试文件

id=0001 username=root password=123456 url=http\://localhost\:1306/spring

二、新建一个PropertiesTest.java的测试类

package org.properties.test;

import java.io.IOException;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;

import org.junit.Test;

public class PropertiesTest {

/**
* @param args
*/
@Test
public void test() {

Properties pps = System.getProperties();
pps.list(System.out);
}

@Test
public void test02() throws IOException {

InputStream is=PropertiesTest.class.getClassLoader().getResourceAsStream("test.properties");

Properties p=new Properties();
p.load(is);

Enumeration enum1 = p.propertyNames();//得到配置文件的名字
while(enum1.hasMoreElements()) {
String strKey = (String) enum1.nextElement();
String strValue = p.getProperty(strKey);
System.out.println(strKey + "---" + strValue);
}
}
}


三、运行结果

运行test();方法结果:

-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=C:\Program Files\Java\jdk1.7.0_79\jre...
java.vm.version=24.79-b02
java.vm.vendor=Oracle Corporation
maven.multiModuleProjectDirectory=$MAVEN_HOME
java.vendor.url=http://java.oracle.com/
path.separator=;
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
file.encoding.pkg=sun.io
user.script=
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=E:\tools\MyEclipse\MyEclipse 10\Works...
java.runtime.version=1.7.0_79-b15
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files\Java\jdk1.7.0_79\jre...
os.arch=amd64
java.io.tmpdir=C:\Users\duchong\AppData\Local\Temp\
line.separator=

java.vm.specification.vendor=Oracle Corporation
user.variant=
os.name=Windows 8.1
sun.jnu.encoding=GBK
java.library.path=C:\Program Files\Java\jdk1.7.0_79\bin...
java.specification.name=Java Platform API Specification
java.class.version=51.0
sun.management.compiler=HotSpot 64-Bit Tiered Compilers
os.version=6.3
user.home=C:\Users\duchong
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=UTF-8
java.specification.version=1.7
user.name=duchong
java.class.path=E:\tools\MyEclipse\MyEclipse 10\Works...
java.vm.specification.version=1.7
sun.arch.data.model=64
java.home=C:\Program Files\Java\jdk1.7.0_79\jre
sun.java.command=org.eclipse.jdt.internal.junit.runner...
java.specification.vendor=Oracle Corporation
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode
java.version=1.7.0_79
java.ext.dirs=C:\Program Files\Java\jdk1.7.0_79\jre...
sun.boot.class.path=C:\Program Files\Java\jdk1.7.0_79\jre...
java.vendor=Oracle Corporation
file.separator=\
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=amd64


运行test02();方法结果:

password---123456 url---http://localhost:1306/spring id---0001 username---root

四、可以应用的场景: 编写一个通用的方法,在不修改程序的情况下,可以获取任何数据库的连接

解决方案:把数据库驱动Driver实现类的全类名、url、user、password 放入一个配置文件中,通过修改配置文件的方式实现和具体的数据库解耦。

public static Connection getConnection2() throws Exception{
String driverClass = null;
String jdbcUrl = null;
String user = null;
String password = null;

// 读取类路径下的jdbc.properties文件
InputStream in =DBUtil.class.getClassLoader().getResourceAsStream("jdbc.properties");
Properties properties = new Properties();
properties.load(in);
driverClass = properties.getProperty("driver");
jdbcUrl = properties.getProperty("jdbcUrl");
user = properties.getProperty("user");
password = properties.getProperty("password");

Driver driver = (Driver)Class.forName(driverClass).newInstance();

Properties info = new Properties();
info.put("user", user);
info.put("password", password);

Connection connection = driver.connect(jdbcUrl, info);
return connection;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: