博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Java基础学习总结(15)——java读取properties文件总结
阅读量:5901 次
发布时间:2019-06-19

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

hot3.png

一、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 */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 {    /**     * @param args     */    public static void main(String[] args) {        try {            readPropFileByGetResourceAsStream();            System.out.println("");            readPropFileByInPutStream();        } catch (Exception e) {            e.printStackTrace();// TODO: handle exception        }    }    /**     * 使用getResourceAsStream方法读取properties文件     */    static void readPropFileByGetResourceAsStream() {        /**         * 读取src下面config.properties包内的配置文件          * test1.properties位于config.properties包内         */        InputStream in1 = 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 p = new Properties();        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是java String占位符            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(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 (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();                }            }        }    }    /**     * 使用InPutStream流读取properties文件     */    static void readPropFileByInPutStream() {        InputStream in1 = null;        InputStream in2 = null;        InputStream in3 = null;        InputStream in4 = null;        System.out.println("----使用InputStream流读取properties文件----");        try {            /**             * 读取src根目录下文件的配置文件              * jdbc.properties位于src目录             */            in1 = new BufferedInputStream(new FileInputStream(                    "src/jdbc.properties"));            /**             * 读取src下面config.properties包内的配置文件              * test1.properties位于config.properties包内             */            in2 = new BufferedInputStream(new FileInputStream(                    "src/config/properties/test1.properties"));            /**             * 读取和PropertiesFileReadTest类位于同一个包里面的配置文件              * test2.properties和PropertiesFileReadTest类在同一个包里面             */            in3 = new BufferedInputStream(new FileInputStream(                    "src/propertiesFile/read/test/test2.properties"));            /**             * 读取位于另一个source文件夹里面的配置文件              * config是一个source文件夹,config.properties位于config source文件夹中             */            in4 = new FileInputStream("config/config.properties");            Properties p = new Properties();            System.out                    .println("----------------------------------------------");            p.load(in1);            System.out.println("jdbc.properties:");            System.out.println(String.format("jdbc.driver=%s",                    p.getProperty("jdbc.driver")));// 这里的%s是java String占位符            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 (FileNotFoundException e) {            e.printStackTrace();        } catch (IOException e) {            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://my.oschina.net/zhanghaiyang/blog/594686

你可能感兴趣的文章
隐私政策
查看>>
CocoaPods could not find compatible versions for pod "xxx": In snapshot (Podfile.lock):
查看>>
使用jmeter 设计流程发起测试
查看>>
《大道至简》第四章读后感
查看>>
oracle创建用户授权权限
查看>>
一年前的管理系统开发平台,完全自己设计,带换肤功能
查看>>
创建对象 --- 工厂模式
查看>>
由阿里云宕机引发的思考
查看>>
蓝桥杯C/C++ 带分数
查看>>
在C#调用C++的DLL方法(二)生成托管的DLL
查看>>
关于日期的demoJS
查看>>
利用IDEA构建springboot应用-配置文件
查看>>
SpringBoot静态资源访问
查看>>
MySQL5.7.32 通用版本安装
查看>>
POJ 1700
查看>>
AOP日志记录
查看>>
多线程--内存可见性&&原子性
查看>>
围观窗体与组件02 - 零基础入门学习Delphi24
查看>>
diplay,Position,Float 之间的关系
查看>>
javascript oo实现(转)
查看>>