一、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. Maven实战02_Maven的安装和配置

    1:在Windows上安装Maven 本人系统环境:win10  + JDK1.8 + apache-maven-3.3.9 在安装Maven之前,首先要确定你的Java环境是否已经配置好了,你是否已 ...

  2. springcloud 与分布式系统(转载)

    原地址:http://blog.csdn.net/neosmith/article/details/51919038 本文不是讲解如何使用spring Cloud的教程,而是探讨Spring Clou ...

  3. 安装配置flask环境

    安装 Flask 好的,让我们开始吧! 现在我们必须开始安装 Flask 以及一些我们会用到的扩展.我首选的方式就是创建一个虚拟环境,这个环境能够安装所有的东西,而你的主 Python 不会受到影响. ...

  4. jquery学习:选择器&dom操作

    分类; 1.基本选择器 1.标签选择器(元素选择器) *  语法:$("html标签名”) 获得所有匹配标签名称的元素 2.id选择器 *  语法:$("#id的属性值" ...

  5. [Array]167. Two Sum II - Input array is sorted

    Given an array of integers that is already sorted in ascending order, find two numbers such that the ...

  6. linux和window双系统下修改系统启动项

    参考:http://jingyan.baidu.com/article/63acb44ae4062c61fcc17e27.html: 我们在安装双系统之后经常会遇到想打开windows但默认启动项是u ...

  7. TZ_01MyBatis_log4j.propertiies

    # Set root category priority to INFO and its only appender to CONSOLE. #log4j.rootCategory=INFO, CON ...

  8. memcache 拓展

    需要安装Libevent.memcached.memcache. 参考网址:https://www.cnblogs.com/hejun695/p/5369610.html 启动:/usr/local/ ...

  9. 20190814-A Second

    一秒,或是,第二次? 这考试也太频繁了吧…… 考试过程: 看三道题. T1没思路. 然后去厕所清醒了一下. 在厕所的时候,突然想到可以离散化. 于是就这么搞了. 然后去写T2. T2好像是数学题. 于 ...

  10. 定时任务 $ ls /etc/cron* + cat$ for user in $(cat /etc/passwd | cut -f1 -d:); do crontab -l -u $user; done

    是否有某个定时任务运行过于频繁? 是否有些用户提交了隐藏的定时任务? 在出现故障的时候,是否正好有某个备份任务在执行?