在學習框架的時候相信各位都會知道,在搭建框架的時候經常會自己寫配置文件。那麼寫這些配置文件有什麼用呢?其實是爲了給底層反射機制調用的。那麼接下來用代碼簡單說明一下讀取和寫數據到配置文件中(沒有用到反射機制)。前期數據準備如下:
package javatribe.fts.properties;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Enumeration;
import java.util.Properties;
/*
* 讀取config.properties配置文件中的值
*/
public class ReadProperties {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
//方式一讀取數據 這種方式讀取配置文件把配置文件放置在合適的位置
//InputStream ips=ReadProperties.class.getResourceAsStream("config.properties");
//方式二讀取數據
InputStream ips=new FileInputStream("D:\\config.properties");
Properties ps=new Properties();
ps.load(ips);
ips.close();
Enumeration enu=ps.propertyNames();
//方法一輸出方式
ps.list(System.out);
//方法二輸出方式
while(enu.hasMoreElements()){
System.out.println("key=="+enu.nextElement());
}
Enumeration enu1=ps.propertyNames();
while(enu1.hasMoreElements()){
System.out.println("value=="+ps.getProperty((String)enu1.nextElement()));
}
}
}
輸出結果
-- listing properties --
--=listing properties --
fengtansong11=fengtansong11
jiangchunwan11=jiangchunwan11
key==--
key==fengtansong11
key==jiangchunwan11
value==listing properties --
value==fengtansong11
value==jiangchunwan11
package javatribe.fts.properties;
import java.io.File;
import java.io.PrintStream;
import java.util.Properties;
/*
* 將數據寫回到config.properties文件中
* 這是一種覆蓋性寫法,原來文件中的數據會丟失
*/
public class WriteToProperties {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Properties p=new Properties();
p.setProperty("fengtansong", "fengtansong");
p.setProperty("jiangchunwan", "jiangchunwan");
PrintStream fW = new PrintStream(new File("d:\\config.properties"));
p.list(fW );
}
}
在D盤上會建立一個config.properties的文件,輸出結果
-- listing properties --
jiangchunwan=jiangchunwan
fengtansong=fengtansong
package javatribe.fts.properties;
import java.io.FileInputStream;
import java.io.InputStream;
import java.util.Properties;
/*
* 讀取config.xml文件中的值
*/
public class RreadXml {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
InputStream ips=RreadXml.class.getResourceAsStream("config.xml");
//方式二讀取數據
//InputStream ips=new FileInputStream("D:\\config.xml");
Properties p=new Properties();
p.loadFromXML(ips);
ips.close();
p.list(System.out);
}
}
輸出結果如下:
-- listing properties --
koo=bar
fu=baz
package javatribe.fts.properties;
import java.io.File;
import java.io.PrintStream;
import java.util.Properties;
public class WriteToXml {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
Properties p=new Properties();
p.setProperty("fengtansong", "fengtansong");
p.setProperty("jiangchunwan", "jiangchunwan");
PrintStream ps=new PrintStream(new File("d:\\config.xml"));
p.storeToXML(ps, "configTest");
}
}
在D盤上會自動建立config.xml文件輸出結果如下:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE properties SYSTEM "http://java.sun.com/dtd/properties.dtd">
<properties>
<comment>configTest</comment>
<entry key="jiangchunwan">jiangchunwan</entry>
<entry key="fengtansong">fengtansong</entry>
</properties>
以上就是簡單的讀取配置文件的方式