一 使用原生方式读取配置文件
1 文件系统加载
Java代码  
InputStream in = new FileInputStream("config.properties");        
Properties p = new Properties();  
p.load(in);  
2 类加载方式
A 与类同级目录
Java代码  
InputStream in = Main.class.getResourceAsStream("config.properties");  
B 在类的下一级目录
Java代码  
InputStream in =   
Main.class.getResourceAsStream("resource/config.properties");  
C 指定加载资源配置文件的classes相对路径
Java代码  
InputStream in =   
Main.class.getResourceAsStream("/test/resource/config.properties");  
注意事项:如上以/开头的是指从根目录开始加载。
D 使用类加载器的方式
Java代码  
InputStream in = Main.class.getClassLoader().  
getResourceAsStream("test/resource/config.properties");  
E 资源配置文件在classes下
Java代码  
InputStream in =   
Main.class.getClassLoader().getResourceAsStream("config.properties");  
二 使用apache提供的功能组件
参照网上相关资料
1 读取properties文件的方式
示例代码
Java代码  
import java.util.List;  
import org.apache.commons.configuration.Configuration;  
import org.apache.commons.configuration.ConfigurationException;  
import org.apache.commons.configuration.PropertiesConfiguration;  
  
public class PropertiesConfigurationDemo {  
  
    public static void main(String[] args) throws ConfigurationException {  
  
        Configuration config = new PropertiesConfiguration(PropertiesConfigurationDemo.class.getResource("system-config.properties"));  
        String ip = config.getString("ip");         
        String[] colors = config.getStringArray("colors.pie");   
        for (int i = 0; i < colors.length; i++) {  
            System.out.println(colors[i]);  
        }  
               
        List<?> colorList = config.getList("colors.pie");  
        for (int i = 0; i < colorList.size(); i++) {  
            System.out.println(colorList.get(i));  
        }  
     }  
}  
配置文件代码:
ip=10.10.1.1
colors.pie = #FF0000, #00FF00, #0000FF
2 读取XML文件的方式
Java代码  
import java.util.List;  
import org.apache.commons.configuration.Configuration;  
import org.apache.commons.configuration.ConfigurationException;  
import org.apache.commons.configuration.XMLConfiguration;  
  
public class XMLConfigurationDemo {  
  
    public static void main(String[] args) throws ConfigurationException {  
  
        Configuration config = new XMLConfiguration(XMLConfigurationDemo.class  
                .getResource("system-config.xml"));  
        String ip = config.getString("ip");  
        String account = config.getString("account");  
        String password = config.getString("password");  
        List<?> roles = config.getList("roles.role");  
        System.out.println("IP: " + ip);  
        System.out.println("Account: " + account);  
        System.out.println("Password: " + password);          
        for (int i = 0; i < roles.size(); i++) {  
            System.out.println("Role: " + roles.get(i));  
        }         
    }  
}  
Xml文件代码:
Xml代码  
<config>  
    <ip>10.10.1.1</ip>  
    <account>jini</account>  
    <password>jakarta99</password>  
    <roles>  
        <role>admin</role>  
        <role>manager</role>  
        <role>user</role>  
    </roles>  
</config>  
示例2
Java代码  
import org.apache.commons.configuration.Configuration;  
import org.apache.commons.configuration.ConfigurationException;  
import org.apache.commons.configuration.XMLConfiguration;  
public class XmlConfigurationExample {  
    public static void main(String[] args) throws Exception,  
            ConfigurationException {  
        String resource = "main/global.xml";  
        Configuration config = new XMLConfiguration(resource);  
        // 只有new一个XMLConfiguration的实例就可以了.  
        List<?> startCriteria = config.getList("start-criteria.criteria");          
        for (int i = 0; i < startCriteria.size(); i++) {  
            System.out.println("Role: " + startCriteria.get(i));  
        }  
        int horsepower = config.getInt("horsepower");  
        System.out.println(horsepower);  
    }  
}  
global.xml文件代码
Xml代码  
<?xml version="1.0" encoding="ISO-8859-1" ?>  
<engine-config>  
    <start-criteria>  
        <criteria>  
            Temperature Above -10 Celsius   
        </criteria>  
        <criteria>  
            Fuel tank is not empty   
       </criteria>  
    </start-criteria>  
    <volume>4 Liters</volume>  
    <horsepower>42</horsepower>  
</engine-config>  
示例3:混合读取二种文件
Java代码  
import java.util.List;  
import org.apache.commons.configuration.CompositeConfiguration;  
import org.apache.commons.configuration.ConfigurationException;  
import org.apache.commons.configuration.PropertiesConfiguration;  
import org.apache.commons.configuration.XMLConfiguration;  
  
public class Test {  
      
    public static void main(String[] args) throws ConfigurationException {  
        CompositeConfiguration config = new CompositeConfiguration();  
        config.addConfiguration(new PropertiesConfiguration(  
        "main/global.properties"));  
        config.addConfiguration(new XMLConfiguration("main/global.xml"));  
          
        List<?> startCriteria = config.getList("start-criteria.criteria");  
        int horsepower = config.getInt("horsepower");  
        for (int i = 0; i < startCriteria.size(); i++) {  
            System.out.println("Role: " + startCriteria.get(i));  
        }  
        System.out.println(horsepower);  
        System.out.println("Speed: " + config.getFloat("speed"));  
        System.out.println("Names: " + config.getString("name"));  
    }  
}  
Xml如上所示,global.properties文件如下:
speed=50 
name=Default User
示例4
Java代码  
import java.net.URL;  
import java.util.List;  
import org.apache.commons.configuration.Configuration;  
import org.apache.commons.configuration.ConfigurationFactory;  
public class PropertiesXmlConfigurationExample {  
      
    public static void main(String[] args) throws Exception {             
        ConfigurationFactory factory = new ConfigurationFactory();  
        URL configURL = PropertiesXmlConfigurationExample.class.getResource("additional-xml-configuration.xml");  
        factory.setConfigurationURL(configURL);  
        Configuration config = factory.getConfiguration();  
        List<?> startCriteria = config.getList("start-criteria.criteria");  
        for (int i = 0; i < startCriteria.size(); i++) {  
            System.out.println("Role: " + startCriteria.get(i));  
        }  
        int horsepower = config.getInt("horsepower");  
        System.out.println("Horsepower: " + horsepower);  
          
        System.out.println("Speed: " + config.getFloat("speed"));  
        System.out.println("Names: " + config.getString("name"));  
          
    }  
}  
additional-xml-configuration.xml文件内容:
Xml代码  
<?xml version="1.0" encoding="ISO-8859-1" ?>   
<configuration>   
<properties fileName="global.properties"/>   
<xml fileName="global.xml"/>  
</configuration>  
相关API说明:
# PropertiesConfiguration 从一个 property 文件中加载配置 .
# XMLConfiguration 从 XML 文件中加载配置信息 .
# XMLPropertyListConfiguration 也可以读取 XML 被 Mac OSX 使用变量 .
# JNDIConfiguration 利用 jndi 树的一个键值,可以返回一个值,这个值来作为配置信息
# BaseConfiguration 访问内存中的一个配置对象 .
# HierarchicalConfiguration 一个在内存中的配置对象,这个对象可以处理复杂的数据结构 .
# SystemConfiguration 一个利用系统属性的配置信息
# ConfigurationConverter 把 java.util.Properties 或者 org.apache.collections.commons.ExtendedProperties 转化为一个 Configuration 对象
参考资料:
common-configuration读取xml,properties文件
http://javamy.iteye.com/blog/252619
使用apache common configuration读取配置文件或修改配置文件
http://www.suneca.com/article.asp?id=9

Java 加载配置文件的方式的更多相关文章

  1. java加载配置文件

    有时候一些变量可能会变,但直接写在程序代码中不好,因为有时候需要改的时候要改动源代码,这时候可以使用配置文件来管理.比如数据库中的端口和密码. 1. 把.properties配置文件放在src目录下. ...

  2. Spring 加载配置文件的方式

    我们常用的加载context文件的方法有如下三个: 1.FileSystemXmlApplicationContext 这个方法是从文件绝对路径加载配置文件,例如: ApplicationContex ...

  3. java加载配置文件的三种方式

    比如我们要加载db.properties文件 如图: 比如我们要加载source目录下的db.properties文件.就有以下几种方式 第一种是文件io流: public static void l ...

  4. SpringMvc的创建流程以及2种加载配置文件的方式

    1.首先创建个web项目,第一步导入相应的jar包,并且buildtoPath 2.用elipse或myeclipse点击进入web.xml中 按住 Alt+ / 有个提示 找到前面带 #Dispat ...

  5. Spring中加载配置文件的方式

    原文:http://blog.csdn.net/snowjlz/article/details/8158560 Spring 中加载XML配置文件的方式,好像有3种, XML是最常见的Spring 应 ...

  6. Spring笔记02(3种加载配置文件的方式)

    1.不使用Spring的实例: 01.Animal接口对应的代码: package cn.pb.dao; /** * 动物接口 */ public interface Animal { //吃饭 St ...

  7. Java加载配置文件类

    /** *  对应配置文件类, */ package com.up72.parkSys.ThirdParty; import java.io.IOException;import java.io.In ...

  8. java加载配置文件信息

    #基金数据存放根目录fund_save_root_path=E:/fundCrawling #龙虎榜数据存放根目录long_hu_root_path=E:/longHuCrawling #巨潮数据存放 ...

  9. Java中加载配置文件的集中方式,以及利用ClassLoader加载文件 .

    我们往常进行文件的加载的时候 用到的都是  FileInputStream进行 文件的加载比如下面一个例子 : InputStream in=FileInputStream("1.prope ...

随机推荐

  1. 【vue.js】windows下安装vue.js

    windows下搭建vue开发环境 Vue.js是一套构建用户界面的 “渐进式框架”.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常 ...

  2. (二)Linux实操之——网络配置、进程管理、服务管理、组管理、YUM

    接上段   (一)Linux实操之——权限.任务调度.磁盘分区 4.网络配置 4.1 NAT模式的网络配置 目前我们采用的网络配置是NAT模式. windows下cmd通过 ipconfig 命令可以 ...

  3. PHP-中文在计算机中的存储

    经常我们打开外国网站的时候出现乱码,又或者打开很多非英语的外国网站的时候,显示的都是口口口口口的字符, WordPress程序是用的UTF-8,很多cms用的是GB2312. ● 为什么有这么多编码? ...

  4. hadoop集群虚拟机配置

    hadoop_1, hadoop_2, hadoop_3 用户名riluo 密码19841984 查看Linux自带的JDK是否已安装 (卸载centOS已安装的1.4) 安装好的CentOS会自带O ...

  5. 安装Python 3.6

    原文地址:https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/00143160904 ...

  6. Linux调度器 - 用户空间接口

    一.前言 Linux调度器神秘而充满诱惑,每个Linux工程师都想深入其内部一探究竟.不过中国有一句古话叫做“相由心生”,一个模块精巧的内部逻辑(也就是所谓的“心”)其外延就是简洁而优雅的接口(我称之 ...

  7. Linux内核同步 - spin_lock

    一.前言 在linux kernel的实现中,经常会遇到这样的场景:共享数据被中断上下文和进程上下文访问,该如何保护呢?如果只有进程上下文的访问,那么可以考虑使用semaphore或者mutex的锁机 ...

  8. ubuntu14.4安装gtx970显卡驱动的艰辛历程

    1 说明: 本人机器说明,显卡gtx970,内存4G,原来系统是win7 64的.最近要学习机器学习的一些算法,需要安装ubuntu.不过安装环境这一条道路真的很曲折,来来回回弄了好久.以下说一下配置 ...

  9. java Webservice(一)HttpClient远程调用

    我们将Web Service发布在Tomcat或者其他应用服务器上后,有很多方法可以调用该Web Service,常用的有两种: 1.通过浏览器HTTP调用,返回规范的XML文件内容      2.通 ...

  10. Android学习之Android 5.0分享动画实现微信点击全屏效果

    Android5.0过渡动画,请看 http://blog.csdn.net/qq_16131393/article/details/51112772 今天用分享动画实现微信点击全屏效果 本文源代码下 ...