java加载properties文件的六种方法总结

java加载properties文件的六种方法总结

java加载properties文件的六中基本方式实现

java加载properties文件的方式主要分为两大类:

》一种是通过import java.util.Properties类中的load(InputStream in)方法加载;

》另一种是通过import java.util.ResourceBundle类的getBundle(String baseName)方法加载。

注意:一定要区分路径格式

实现代码如下:


1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91

92

93

94

95

96

97

98

99

100

101

102

103

104

105

106

107

108

109

110

111

112

113

114

115

116

117

118

119

120

121

122

123

124

125

126

127

128

129

130

131

package com.util;

import java.io.FileInputStream;

import java.io.FileNotFoundException;

import java.io.IOException;

import java.io.InputStream;

import java.util.Properties;

import java.util.PropertyResourceBundle;

import java.util.ResourceBundle;

public class PropertiesUtil {

  private static String basePath = "src/prop.properties";

  private static String name = "";

  private static String nickname = "";

  private static String password = "";

  /**

   * 一、 使用java.util.Properties类的load(InputStream in)方法加载properties文件

   *

   */

  public static String getName1() {

    try {

      Properties prop = new Properties();

      InputStream is = new FileInputStream(basePath);

      prop.load(is);

      name = prop.getProperty("username");

    } catch (FileNotFoundException e) {

      e.printStackTrace();

    } catch (IOException e) {

      e.printStackTrace();

    }

    return name;

  }

  /**

   * 二、 使用class变量的getResourceAsStream()方法

   * 注意:getResourceAsStream()读取路径是与本类的同一包下

   *

   */

  public static String getName2() {

    Properties prop = new Properties();

    InputStream is = PropertiesUtil.class

        .getResourceAsStream("/com/util/prop.properties");

    try {

      prop.load(is);

      name = prop.getProperty("username");

    } catch (IOException e) {

      e.printStackTrace();

    }

    return name;

  }

  /**

   * 三、

   * 使用class.getClassLoader()所得到的java.lang.ClassLoader的getResourceAsStream()方法

   * getResourceAsStream(name)方法的参数必须是包路径+文件名+.后缀 否则会报空指针异常

   *

   */

  public static String getName3() {

    Properties prop = new Properties();

    InputStream is = PropertiesUtil.class.getClassLoader()

        .getResourceAsStream("com/util/prop.properties");

    try {

      prop.load(is);

    } catch (IOException e) {

      e.printStackTrace();

    }

    return name;

  }

  /**

   * 四、 使用java.lang.ClassLoader类的getSystemResourceAsStream()静态方法

   * getSystemResourceAsStream()方法的参数格式也是有固定要求的

   *

   */

  public static String getName4() {

    Properties prop = new Properties();

    InputStream is = ClassLoader

        .getSystemResourceAsStream("com/util/prop.properties");

    try {

      prop.load(is);

      name = prop.getProperty("username");

    } catch (IOException e) {

      e.printStackTrace();

    }

    return name;

  }

  /**

   * 五、 使用java.util.ResourceBundle类的getBundle()方法

   * 注意:这个getBundle()方法的参数只能写成包路径+properties文件名,否则将抛异常

   *

   */

  public static String getName5() {

    ResourceBundle rb = ResourceBundle.getBundle("com/util/prop");

    password = rb.getString("password");

    return password;

  }

  /**

   * 六、 使用java.util.PropertyResourceBundle类的构造函数

   *

   */

  public static String getName6() {

    try {

      InputStream is = new FileInputStream(basePath);

      ResourceBundle rb = new PropertyResourceBundle(is);

      nickname = rb.getString("nickname");

    } catch (FileNotFoundException e) {

      e.printStackTrace();

    } catch (IOException e) {

      e.printStackTrace();

    }

    return nickname;

  }

  /**

   * 测试

   *

   */

  public static void main(String[] args) {

    System.out.println("name1:" + PropertiesUtil.getName1());

    System.out.println("name2:" + PropertiesUtil.getName2());

    System.out.println("name3:" + PropertiesUtil.getName3());

    System.out.println("name4:" + PropertiesUtil.getName4());

    System.out.println("password:" + PropertiesUtil.getName5());

    System.out.println("nickname:" + PropertiesUtil.getName6());

  }

}

原文地址:https://www.cnblogs.com/weixupeng/p/8707505.html

时间: 2024-11-03 22:10:29

java加载properties文件的六种方法总结的相关文章

Java 加载Properties文件的六种方式

1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2.使用java.util.ResourceBundle类的getBundle()方法 示例: ResourceBundle rb = ResourceBundle.getBundle(nam

java加载properties文件的六中基本方式实现

java加载properties文件的方式主要分为两大类:一种是通过import java.util.Properties类中的load(InputStream in)方法加载: 另一种是通过import java.util.ResourceBundle类的getBundle(String baseName)方法加载. 注意:一定要区分路径格式 实现代码如下: 1 package com.util; 2 3 import java.io.FileInputStream; 4 import jav

Java加载资源文件几种方法

from: http://andyzhu.blog.51cto.com/4386758/775836/ import java.net.URL; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; public class TestMain { public static void main

xml文件 加载properties文件的两种方法与注意事项

1.遇到的问题: 配置redisSpringContext.xml 时,遇到 properties加载失败,提示BeanDefinitionStoreException  和   java.lang.IllegalArgumentException: Could not resolve placeholder 'xxx'  , 找了很久都找不到原因,文件路径和键名都没写错,加载语法也没有写错...这就很难受了. 直到检查web.xml文件,,我猜测,是不是因为 springcontext-*.x

Java读取Properties文件的六种方法

使用J2SE API读取Properties文件的六种方法 1.使用java.util.Properties类的load()方法 示例: InputStream in = lnew BufferedInputStream(new FileInputStream(name)); Properties p = new Properties(); p.load(in); 2.使用java.util.ResourceBundle类的getBundle()方法 示例: ResourceBundle rb

java加载资源文件

className.class.getResourceAsStream 用法: 第一: 要加载的文件和.class文件在同一目录下,例如:com.x.y 下有类Test.class ,同时有资源文件config.properties 那么,应该有如下代码: //前面没有"/"代表当前类的目录 InputStream is1 = Test.class.getResourceAsStream("config.properties"); System.out.printl

spring入门(二)【加载properties文件】

在开发过程当中需要用到配置信息,这些信息不能进行硬编码,这时配置文件是一个比较好的方式,java提供了properties格式的文件,以键值对的方式保存信息,在读取的时候通过键获得键对应的值,spring提供了读取properties文件的支持,下面看具体的配置, 一.<context:property-placeholder location=""/>标签 在项目中经常用到数据库连接,连接数据库需要一些参数:driver.url.username.password,这些信

spring 如何动态加载properties文件的内容

1. 在xml中配置你的properties路径: <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource"> <property name="basenames"> <list> <!-- 指定资源文件基名称 jdbc为文件名,不包含扩展名 --&g

Spring加载properties文件的两种方式

在项目中如果有些参数经常需要修改,或者后期可能需要修改,那我们最好把这些参数放到properties文件中,源代码中读取properties里面的配置,这样后期只需要改动properties文件即可,不需要修改源代码,这样更加方便.在Spring中也可以这么做,而且Spring有两种加载properties文件的方式:基于xml方式和基于注解方式.下面分别讨论下这两种方式. 1. 通过xml方式加载properties文件 我们以Spring实例化dataSource为例,我们一般会在beans