博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
java读取properties文件总结
阅读量:6220 次
发布时间:2019-06-21

本文共 8395 字,大约阅读时间需要 27 分钟。

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

 

转载于:https://www.cnblogs.com/tanlei-sxs/p/9518650.html

你可能感兴趣的文章
input=file accept 类型
查看>>
在浏览器中进行深度学习:TensorFlow.js (十)构建一个推荐系统
查看>>
Getting iOS Done | 搞定iOS7 0 万事俱备
查看>>
DSL与函数式编程
查看>>
微信图片反防盗链的方法(此图片来自微信公众平台,未经允许不可引用)
查看>>
static_cast,const_cast,dynamic_cast,reinterpret...
查看>>
玩静态资源加密验证
查看>>
phpstorm 快捷键和搜狗输入法冲突
查看>>
Linux下查看、关闭及开启防火墙命令
查看>>
Java匿名内部类汇总
查看>>
lighttpd开启rewrite伪静态方法
查看>>
Linux Apache 图片服务器
查看>>
socket 编程入门教程(三)TCP原理:2、设计TCP socket的类(上)
查看>>
Mac升级为macOS Sierra系统后项目报错
查看>>
Android性能全面分析与优化方案研究
查看>>
springCloud经验
查看>>
php连接mysql时常用的函数
查看>>
xcode UILabel分页计算(转来收藏)
查看>>
【转】:胡适致毕业生:在不健全的中国,如何不堕落。
查看>>
Js作用域链及变量作用域
查看>>