Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用输入流从XML文件读取属性?_Java_Xml_Properties_Static_Inputstream - Fatal编程技术网

Java 使用输入流从XML文件读取属性?

Java 使用输入流从XML文件读取属性?,java,xml,properties,static,inputstream,Java,Xml,Properties,Static,Inputstream,目前在我的Java应用程序中,我有以下类,用于从我的属性文件(Application.properties)检索值: 使用MyProperties类实例化int的示例: int maxNumberOfPeople = Integer.parseInt(MyProperties.getProperty("maximumPeople")); 我想更改此类,以便读取XMLproperties文件,而不是application.properties文件 如何做到这一点,并且仍然能够使用MyProper

目前在我的
Java
应用程序中,我有以下
,用于从我的
属性
文件(Application.properties)检索值:

使用
MyProperties
类实例化
int
的示例:

int maxNumberOfPeople = Integer.parseInt(MyProperties.getProperty("maximumPeople"));
我想更改此类,以便读取
XML
properties文件,而不是application.properties文件

如何做到这一点,并且仍然能够使用MyProperties类实例化值?

请阅读
Properties.loadFromXML(…)
方法的说明

方法总结:

将指定输入流上XML文档表示的所有属性加载到此属性表中

Properties
javadoc包含XML文档(文件)的DTD


最好使用以下资源编写加载程序:

try (java.io.InputStream in = MyProperties.class.getClassLoader().
            getResourceAsStream("application.properties")) {
    // load properties
} catch (Exception e) {
    e.printStackTrace();
}
此外,捕获并挤压这样的异常也是一个坏主意

  • 不要捕捉异常
  • 如果属性加载失败,您很可能希望应用程序“退出”
  • 最后,您可能不应该在静态初始值设定项中加载属性,因为这样您就没有干净的方法来处理可能出现的任何异常。

    请阅读
    properties.loadFromXML(…)
    方法

    方法总结:

    将指定输入流上XML文档表示的所有属性加载到此属性表中

    Properties
    javadoc包含XML文档(文件)的DTD


    最好使用以下资源编写加载程序:

    try (java.io.InputStream in = MyProperties.class.getClassLoader().
                getResourceAsStream("application.properties")) {
        // load properties
    } catch (Exception e) {
        e.printStackTrace();
    }
    
    此外,捕获并挤压这样的异常也是一个坏主意

  • 不要捕捉异常
  • 如果属性加载失败,您很可能希望应用程序“退出”

  • 最后,您可能不应该在静态初始值设定项中加载属性,因为这样就没有干净的方法来处理可能出现的任何异常。

    看看这里:将问题标记为“太宽”。也有不同的方法可以做到这一点(基于观点)。请尝试一些东西,如果它不起作用,发布代码和你面临的错误。看看这里:将问题标记为“太宽”。也有不同的方法可以做到这一点(基于观点)。请尝试一些东西,如果它不起作用,张贴代码和你面临的错误。