上一篇讲了怎么properties的格式规范,这篇讲解怎么在java中获取properties里面的参数
闲话不多说,直接上例子
-
新建一个winvoi.properties文件,里面的内容时:
age=152 name=linkaige id=125633
相信大家已经能看懂上面的内容了,不懂得请先看我的另外一篇博客 -->怎么编写properties文件
-
新建一个java类Test.java(注意把properties文件和java文件放一个包下,本节只讲如何获取properties中的值,尽量不涉及别的知识块) 上代码
package java8.rambda; import java.io.IOException; import java.io.InputStream; import java.util.Properties; public class Test { public static void main(String[] args) throws IOException { //使用Class类的getResourceAsStream()方法获取文件 并返回InputStream类的一个对象 InputStream inputStream = Test.class.getResourceAsStream("winvoi.properties"); //实例化Properties类 Properties properties = new Properties(); //调用load()方法加载properties文件,load里面传入InputSteam类型的参数或者Reader类型的参数 properties.load(inputStream); //通过getProperty(String key)方法获取,传入一个String类型的 键,返回一个String类型的值 如果键不存在则返回null String age = properties.getProperty("age"); String name = properties.getProperty("name"); //通过getProperty(String key, String defaultValue)方法获取,传入一个String类型的键和一个默认值,返回一个String类型的值 如果键不存在则返回defaultValue String id = properties.getProperty("id", "123456"); System.out.println("age:" + age); System.out.println("name:" + name); System.out.println("id:" + id); } }
-
运行结果
通过properties文件中的键获取到了值;
解释: 里面涉及到了Class类 不懂的可以先不管
1.要获取文件中的内容,首先得将文件加载到流里面,通过Class类的getResourceAsStream()方法获取文件,这个方法会返回一个InputSteam对象,
2.然后实例化一个Properties对象,这个类是用来操作properties文件的,可以通过键的方式来获取值,更多使用方法可以查看api
3.实例化一个Properties对象后还得以流的方式加载properties文件,可以传入一个字节流对象或者字符流对象,这样才能获取到里面的内容,这个方法会抛出一个IO异常
4.getProperty()方法会返回一个String类型的字符串,如果所查询的键在文件中不存在则会返回null,
至于为什么上面有两个形参个数不同的getProperty()方法,相信大家都知道,如果不知道还是先去看下java基础。
本章获取就讲完了,东西没有好多,写的也不是那么的好,就当巩固一下吧,可能大家也注意到了,properties中没写中文,在这篇我就不写中文了,有中文的话可能乱码,还要处理,所以留到下一篇再来解决
写的不好还望大神留言指教!