【注:内容有点长,但解说得很详细清楚】
在java.util 包下面有一个类 Properties,该类主要用于读取以项目的配置文件(以.properties结尾的文件和xml文件)。
Properties的构造函数有两个,一个不带参数,一个使用一个Properties对象作为参数。
使用Properties读取.properties文件
test.properties文件如下:
- #测试环境配置:平台路径配置
- jstrd_home=D:/TMS2006/webapp/tms2006/WEB-INF/
- dbPort = localhost
- databaseName = mydb
- dbUserName = root
- dbPassword = root
- # 以下为数据库表信息
- dbTable = mytable
- # 以下为服务器信息
- ip = 192.168.0.9
读取test.properties的方法如下:
- impor java.io.*;
- import java.util.*;
- public class ReadProperties{
- public static void main(String[] args) {
- File pFile = new File("e://test.properties"); // properties文件放在e盘下(windows)
- FileInputStream pInStream=null;
- try {
- pInStream = new FileInputStream(pFile );
- }
- catch (FileNotFoundException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
- Properties p = new Properties();
- try {
- p .load(pInStream ); //Properties 对象已生成,包括文件中的数据
- }
- catch (IOException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
- Enumeration enu = p.propertyNames(); //取出所有的key
- //输出--1
- p.list(System.out) ; //System.out可以改为其他的输出流(包括可以输出到文件)
- //输出--2
- while( enu .hasMoreElements()){
- System.out.print("key="+enu.nextElement());
- System.out.print("value="+p.getProperty((String)enu .nextElement()));
- }
- }
- }
读取xml格式的配置文件
test.xml文件ruxi
- <?xml version="1.0" encoding="UTF-8"?>
- <!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
- <properties>
- <entry key="koo">bar</entry>
- <entry key="fu">baz</entry>
- </properties>
读取xml的方法
- import java.io.IOException;
- import java.io.File;
- import java.io.FileInputStream;
- import java.util.Properties;
- public class Test {
- public static void main(String[] args) {
- File pFile = new File("e://test.xml"); // properties文件放在e盘下(windows)
- FileInputStream pInStream = null;
- try {
- pInStream = new FileInputStream(pFile);
- Properties p = new Properties();
- p.loadFromXML(pInStream);
- p.list(System.out);
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
通过list 方法将Properties写入Properties文件
- import java.io.IOException;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.PrintStream;
- import java.util.Properties;
- public class Test {
- public static void main(String[] args) {
- Properties p = new Properties();
- p.setProperty("id","dean");
- p.setProperty("password","123456");
- try{
- PrintStream fW = new PrintStream(new File("e://test1.properties"));
- p.list(fW );
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
保存为xml
- import java.io.IOException;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.PrintStream;
- import java.util.Properties;
- public class Test {
- public static void main(String[] args) {
- Properties p = new Properties();
- p.setProperty("id","dean");
- p.setProperty("password","123456");
- try{
- PrintStream fW = new PrintStream(new File("e://test1.xml"));
- p.storeToXML(fW,"test");
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
以上转自百度文库:http://wenku.baidu.com/view/36557f69a45177232f60a27b.html
以下转自:http://liudaoru.javaeye.com/blog/340367
将文件改为UTF_8编码格式, 用Edit 编辑器打开,就可以看见文件内容显示汉字。
在读取的时候,还需要转换才能读取来汉字字符串,读取方法:
String path = new String(com.GetKey("sql").getBytes("ISO-8859-1"), "UTF-8");
其中方法(GetKey) 是获取配置文件字符串的