一、java读取properties文件总结

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

/*    范例名称:java读取properties文件总结
* 源文件名称:PropertiesFileReadTest.java
* 要 点:
* 1. 使用getResourceAsStream方法读取properties文件
* 2. 使用InPutStream流读取properties文件
* 3. 读取properties文件的路径写法问题
*
**/
package propertiesFile.read.test; import java.io.BufferedInputStream;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.text.MessageFormat;
import java.util.Properties; public class PropertiesFileReadTest {
public static void main(String[] args) throws FileNotFoundException {
readPropFileByGetResourceAsAtream();
System.out.println("--------------");
//readPropFileByInPutStream();
} /*
* 使用getResourceAsAtream方法读取
*/
private static void readPropFileByGetResourceAsAtream() {
/*
* 读取src下面config.properties包内的配置文件 test1.properties位于config.properties包内
*/
InputStream inl = PropertiesFileReadTest.class.getClassLoader()
.getResourceAsStream("config/properties/test1.properties"); /*
* 读取和PropertiesFileReadTest类位于同一个包里面的配置文件
* test2.properties和PropertiesFileReadTest类在同一个包内
*/
InputStream in2 = PropertiesFileReadTest.class.getResourceAsStream("test2.properties"); /*
* 读取src根目录下文件的配置文件 jdbc.properties位于src目录
*/
InputStream in3 = PropertiesFileReadTest.class.getClassLoader().getResourceAsStream("jdbc.properties"); /*
* 读取位于另一个source文件夹里面的配置文件 config是一个source文件夹,config.properties位于config
* source文件夹中
*/
InputStream in4 = PropertiesFileReadTest.class.getClassLoader().getResourceAsStream("config.properties"); Properties properties = new Properties();
System.out.println("----使用getResourceAsStream方法读取properties文件----"); // 从输入字节流读取属性列表(键,值)
try {
System.out.println("-----------------------");
properties.load(inl);
System.out.println("test1.properties:name=" + properties.getProperty("name") + ",age="
+ properties.getProperty("age"));
System.out.println("-----------------------");
System.out.println("-----------------------");
properties.load(in2);
System.out.println("test2.properties:name=" + properties.getProperty("name") + ",age="
+ properties.getProperty("age"));
System.out.println("-----------------------");
properties.load(in3);
System.out.println("jdbc.properties:");
// 使用指定的格式字符串和参数返回格式化的字符串, 这里的%s是java String占位符
System.out.println(String.format("jdbc.url=%s", properties.getProperty("jdbc.url")));
System.out.println(String.format("jdbc.usename=%s", properties.getProperty("jdbc.usename")));
System.out.println(String.format("jdbc.password=%s", properties.getProperty("jdbc.password")));
properties.load(in4);
System.out.println("config.properties:");
// 使用给定的模式创建一个MessageFormat,并使用它来格式化给定的参数,{0}是一个java的字符串占位符
System.out.println(MessageFormat.format("dbuser={0}", properties.getProperty("dbuser")));
System.out.println(MessageFormat.format("dbpassword={0}", properties.getProperty("dbpassword")));
System.out.println(MessageFormat.format("database={0}", properties.getProperty("database")));
System.out.println("----------------------------------------------"); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if(inl != null) {
try {
inl.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(in2 != null) {
try {
inl.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(in3 != null) {
try {
inl.close();
} catch (IOException e) {
e.printStackTrace();
}
}
if(in4 != null) {
try {
inl.close();
} catch (IOException e) {
e.printStackTrace();
}
} }
}
/*
* 使用InputStream流读取properties
*/
private static void readPropFileByInPutStream() throws FileNotFoundException {
InputStream in1=null;
InputStream in2=null;
InputStream in3=null;
InputStream in4=null;
System.out.println("----使用InputStream流读取properties文件----");
try {
/*
* 读取src下面config.properties包内的配置文件 test1.properties位于config.properties包内
*/ in1 =new BufferedInputStream(new FileInputStream("src/config/properties/test1.properties"));
/*
* 读取和PropertiesFileReadTest类位于同一个包里面的配置文件
* test2.properties和PropertiesFileReadTest类在同一个包里面
*/
in2=new BufferedInputStream(new FileInputStream("src/propertiesFile/read/test/test2.properties"));
/*
* 读取src根目录下文件的配置文件
* jdbc.properties位于src目录
*/
in3 = new BufferedInputStream(new FileInputStream("src/jdbc.properties"));
/*
* 读取位于另一个source文件夹里面的配置文件
* config是一个source文件夹,config.properties位于config source文件夹中
*/
in4 = new FileInputStream("config/config.properties"); Properties properties=new Properties(); System.out.println("-----------------------");
properties.load(in1);
System.out.println("test1.properties:name=" + properties.getProperty("name") + ",age="
+ properties.getProperty("age"));
System.out.println("-----------------------");
System.out.println("-----------------------");
properties.load(in2);
System.out.println("test2.properties:name=" + properties.getProperty("name") + ",age="
+ properties.getProperty("age"));
System.out.println("-----------------------");
properties.load(in3);
System.out.println("jdbc.properties:");
// 使用指定的格式字符串和参数返回格式化的字符串, 这里的%s是java String占位符
System.out.println(String.format("jdbc.url=%s", properties.getProperty("jdbc.url")));
System.out.println(String.format("jdbc.usename=%s", properties.getProperty("jdbc.usename")));
System.out.println(String.format("jdbc.password=%s", properties.getProperty("jdbc.password")));
properties.load(in4);
System.out.println("config.properties:");
// 使用给定的模式创建一个MessageFormat,并使用它来格式化给定的参数,{0}是一个java的字符串占位符
System.out.println(MessageFormat.format("dbuser={0}", properties.getProperty("dbuser")));
System.out.println(MessageFormat.format("dbpassword={0}", properties.getProperty("dbpassword")));
System.out.println(MessageFormat.format("database={0}", properties.getProperty("database")));
System.out.println("----------------------------------------------"); } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally {
if (in1 != null) {
try {
in1.close();
} catch (IOException e) {
e.printStackTrace();
}
} if (in2 != null) {
try {
in2.close();
} catch (IOException e) {
e.printStackTrace();
}
} if (in3 != null) {
try {
in3.close();
} catch (IOException e) {
e.printStackTrace();
}
} if (in4 != null) {
try {
in4.close();
} catch (IOException e) {
e.printStackTrace();
}
}
} }

java读取properties文件总结的更多相关文章

  1. java分享第十六天( java读取properties文件的几种方法&java配置文件持久化:static块的作用)

     java读取properties文件的几种方法一.项目中经常会需要读取配置文件(properties文件),因此读取方法总结如下: 1.通过java.util.Properties读取Propert ...

  2. 用java读取properties文件--转

    今天为了通过java读取properties文件,google了很长时间,终于找到了.现在特记录之和大家一起分享.     下面直接贴出代码:java类 public class Mytest pub ...

  3. java 读取properties文件总结

    一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResource ...

  4. java基础学习总结——java读取properties文件总结

    摘录自:http://www.cnblogs.com/xdp-gacl/p/3640211.html 一.java读取properties文件总结 在java项目中,操作properties文件是经常 ...

  5. java读取properties文件时候要注意的地方

    java读取properties文件时,一定要注意properties里面后面出现的空格! 比如:filepath = /home/cps/ 我找了半天,系统一直提示,没有这个路径,可是确实是存在的, ...

  6. java基础—java读取properties文件

    一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResource ...

  7. Java基础学习总结(15)——java读取properties文件总结

    一.java读取properties文件总结 在java项目中,操作properties文件是经常要做的,因为很多的配置信息都会写在properties文件中,这里主要是总结使用getResource ...

  8. java读取.properties文件

    在web开发过程中,有些配置要保存到properties文件里,本章将给出一个工具类,用来方便读取properties文件. 案例: 1:config.properties文件 name=\u843D ...

  9. Java 读取Properties文件时应注意的路径问题

    1. 使用Class的getResourceAsStream()方法读取Properties文件(资源文件)的路径问题:  InputStream in = this.getClass().getRe ...

随机推荐

  1. Java中String类的常见面试题

    1. 判断定义为String类型的s1和s2是否相等 String s1 = "ab"; String s2 = "abc"; String s3 = s1 + ...

  2. HBase性能优化方法总结 (转)

    AutoFlush 通过调用HTable.setAutoFlushTo(false)方法可以将HTable写客户端自动flush关闭,这样可以批量写入数据到HBase,而不是有一条put就执行一次更新 ...

  3. odoo web controller

    Routing openerp.http.route(route=None, **kw) Decorator marking the decorated method as being a handl ...

  4. leetcode 492-543 easy

    492. Construct the Rectangle Input: 4 Output: [2, 2] Explanation: The target area is 4, and all the ...

  5. TZ_06_SpringMVC_传统文件上传和SpringMVC文件上传方式

    1.传统文件上传方式 <!-- 文件上传需要的jar --> <dependency> <groupId>commons-fileupload</groupI ...

  6. 现在学习 JavaScript 的哪种技术更好:Angular、jQuery 还是 Node.js?(转)

    本文选自<开发者头条>1 月 7 日最受欢迎文章 Top 3,感谢作者 @WEB资源网 分享. 欢迎分享:http://toutiao.io/contribute 这是一个发布在 Quor ...

  7. hdu 1754 I Hate It (线段树求区间最值)

    HDU1754 I Hate It Time Limit:3000MS     Memory Limit:32768KB     64bit IO Format:%I64d & %I64u D ...

  8. Java问题解读系列之String相关---String类的常用方法?

    今天的题目是:String类的常用方法? 首先,我们在eclipse中定义一个字符串,然后使用alt+/就会出现String类的所有方法,如下图所示: 下面我就挑选一些常用的方法进行介绍: 首先定义两 ...

  9. js 百度地图和谷歌地图的选择

    最近手上接到一个需求: 国外的域名访问,显示谷歌地图 国内的域名访问,显示百度地图 切换中英文的时候,中文->显示百度地图,英文->能显示谷歌地图就显示谷歌地图,不能显示(报错)就显示百度 ...

  10. 洛谷P1456Monkey King

    洛谷P1456 Monkey King 题目描述 Once in a forest, there lived N aggressive monkeys. At the beginning, they ...