配色: 字号:
java读取properties文件总结
2016-08-24 | 阅:  转:  |  分享 
  
java读取properties文件总结



一、java读取properties文件总结



在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResourceAsStream方法和InputStream流去读取properties文件,使用getResourceAsStream方法去读取properties文件时需要特别注意properties文件路径的写法,测试项目如下:



1.1.项目的目录结构



1.2.java读取properties文件代码测试



复制代码

/范例名称:java读取properties文件总结

源文件名称:PropertiesFileReadTest.java

要点:

1.使用getResourceAsStream方法读取properties文件

2.使用InPutStream流读取properties文件

3.读取properties文件的路径写法问题

时间:2014/4/2

/

packagepropertiesFile.read.test;



importjava.io.BufferedInputStream;

importjava.io.FileInputStream;

importjava.io.FileNotFoundException;

importjava.io.IOException;

importjava.io.InputStream;

importjava.text.MessageFormat;

importjava.util.Properties;



publicclassPropertiesFileReadTest{



/

@paramargs

/

publicstaticvoidmain(String[]args){

try{

readPropFileByGetResourceAsStream();

System.out.println("");

readPropFileByInPutStream();

}catch(Exceptione){

e.printStackTrace();//TODO:handleexception

}

}



/

使用getResourceAsStream方法读取properties文件

/

staticvoidreadPropFileByGetResourceAsStream(){

/

读取src下面config.properties包内的配置文件

test1.properties位于config.properties包内

/

InputStreamin1=PropertiesFileReadTest.class.getClassLoader()

.getResourceAsStream("config/properties/test1.properties");

/

读取和PropertiesFileReadTest类位于同一个包里面的配置文件

test2.properties和PropertiesFileReadTest类在同一个包里面

/

InputStreamin2=PropertiesFileReadTest.class

.getResourceAsStream("test2.properties");

/

读取src根目录下文件的配置文件

jdbc.properties位于src目录

/

InputStreamin3=PropertiesFileReadTest.class.getClassLoader()

.getResourceAsStream("jdbc.properties");

/

读取位于另一个source文件夹里面的配置文件

config是一个source文件夹,config.properties位于configsource文件夹中

/

InputStreamin4=PropertiesFileReadTest.class.getClassLoader()

.getResourceAsStream("config.properties");



Propertiesp=newProperties();

System.out.println("----使用getResourceAsStream方法读取properties文件----");

try{

System.out

.println("----------------------------------------------");

p.load(in1);

System.out.println("test1.properties:name="+p.getProperty("name")

+",age="+p.getProperty("age"));

System.out

.println("----------------------------------------------");



p.load(in2);

System.out.println("test2.properties:name="+p.getProperty("name")

+",age="+p.getProperty("age"));

System.out

.println("----------------------------------------------");



p.load(in3);

System.out.println("jdbc.properties:");

System.out.println(String.format("jdbc.driver=%s",

p.getProperty("jdbc.driver")));//这里的%s是javaString占位符

System.out.println(String.format("jdbc.url=%s",

p.getPropertywww.wang027.com("jdbc.url")));

System.out.println(String.format("jdbc.usename=%s",

p.getProperty("jdbc.usename")));

System.out.println(String.format("jdbc.password=%s",

p.getProperty("jdbc.password")));

System.out

.println("----------------------------------------------");



p.load(in4);

System.out.println("config.properties:");

System.out.println(MessageFormat.format("dbuser={0}",

p.getProperty("dbuser")));//{0}是一个java的字符串占位符

System.out.println(MessageFormat.format("dbpassword={0}",

p.getProperty("dbpassword")));

System.out.println(MessageFormat.format("database={0}",

p.getProperty("database")));

System.out

.println("----------------------------------------------");

}catch(IOExceptione){

//TODOAuto-generatedcatchblock

e.printStackTrace();

}finally{

if(in1!=null){

try{

in1.close();

}catch(IOExceptione){

e.printStackTrace();

}

}



if(in2!=null){

try{

in2.close();

}catch(IOExceptione){

e.printStackTrace();

}

}



if(in3!=null){

try{

in3.close();

}catch(IOExceptione){

e.printStackTrace();

}

}



if(in4!=null){

try{

in4.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

}

}



/

使用InPutStream流读取properties文件

/

staticvoidreadPropFileByInPutStream(){

InputStreamin1=null;

InputStreamin2=null;

InputStreamin3=null;

InputStreamin4=null;

System.out.println("----使用InputStream流读取properties文件----");

try{

/

读取src根目录下文件的配置文件

jdbc.properties位于src目录

/

in1=newBufferedInputStream(newFileInputStream(

"src/jdbc.properties"));

/

读取src下面config.properties包内的配置文件

test1.properties位于config.properties包内

/

in2=newBufferedInputStream(newFileInputStream(

"src/config/properties/test1.properties"));

/

读取和PropertiesFileReadTest类位于同一个包里面的配置文件

test2.properties和PropertiesFileReadTest类在同一个包里面

/

in3=newBufferedInputStream(newFileInputStream(

"src/propertiesFile/read/test/test2.properties"));

/

读取位于另一个source文件夹里面的配置文件

config是一个source文件夹,config.properties位于configsource文件夹中

/

in4=newFileInputStream("config/config.properties");



Propertiesp=newProperties();

System.out

.println("----------------------------------------------");



p.load(in1);

System.out.println("jdbc.properties:");

System.out.println(String.format("jdbc.driver=%s",

p.getProperty("jdbc.driver")));//这里的%s是javaString占位符

System.out.println(String.format("jdbc.url=%s",

p.getProperty("jdbc.url")));

System.out.println(String.format("jdbc.usename=%s",

p.getProperty("jdbc.usename")));

System.out.println(String.format("jdbc.password=%s",

p.getProperty("jdbc.password")));

System.out

.println("----------------------------------------------");



p.load(in2);

System.out.println("test1.properties:name="+p.getProperty("name")

+",age="+p.getProperty("age"));

System.out

.println("----------------------------------------------");

p.load(in3);

System.out.println("test2.properties:name="+p.getProperty("name")

+",age="+p.getProperty("age"));

System.out

.println("----------------------------------------------");



p.load(in4);

System.out.println("config.properties:");

System.out.println(MessageFormat.format("dbuser={0}",

p.getProperty("dbuser")));//{0}是一个java的字符串占位符

System.out.println(MessageFormat.format("dbpassword={0}",

p.getProperty("dbpassword")));

System.out.println(MessageFormat.format("database={0}",

p.getProperty("database")));

System.out

.println("----------------------------------------------");

}catch(FileNotFoundExceptione){

e.printStackTrace();

}catch(IOExceptione){

e.printStackTrace();

}finally{

if(in1!=null){

try{

in1.close();

}catch(IOExceptione){

e.printStackTrace();

}

}



if(in2!=null){

try{

in2.close();

}catch(IOExceptione){

e.printStackTrace();

}

}



if(in3!=null){

try{

in3.close();

}catch(IOExceptione){

e.printStackTrace();

}

}



if(in4!=null){

try{

in4.close();

}catch(IOExceptione){

e.printStackTrace();

}

}

}

}



}

献花(0)
+1
(本文系thedust79首藏)