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();
}
}
}
}
}
|
|