Java 如何解析属性文件中的属性值

Java 如何解析属性文件中的属性值,java,properties-file,Java,Properties File,嗨 我正在加载属性文件以建立数据库连接, 例: 上面的行和属性文件中的一样,但当我调用getConnection方法时,我需要发送url、用户名和pw。 我如何解析它 您可以拆分条目: String dbProperty = prop.getProperty("DB1"); String[] dbDetails = dbProperty.split(",", 3); dbDetails[0]将保存您的JDBC…,[1]您的用户名和[2]您的密码 更好的是,你可能想把它们放在不同的地方(

嗨 我正在加载属性文件以建立数据库连接, 例:

上面的行和属性文件中的一样,但当我调用getConnection方法时,我需要发送url、用户名和pw。 我如何解析它

  • 您可以拆分条目:

    String dbProperty = prop.getProperty("DB1");   
    String[] dbDetails = dbProperty.split(",", 3);
    
  • dbDetails[0]
    将保存您的
    JDBC…
    [1]
    您的
    用户名
    [2]
    您的
    密码

  • 更好的是,你可能想把它们放在不同的地方(正如lweller所说)

  • 这样,您可以获得更好的清晰度和控制

  • 您可以拆分条目:

    String dbProperty = prop.getProperty("DB1");   
    String[] dbDetails = dbProperty.split(",", 3);
    
  • dbDetails[0]
    将保存您的
    JDBC…
    [1]
    您的
    用户名
    [2]
    您的
    密码

  • 更好的是,你可能想把它们放在不同的地方(正如lweller所说)


  • 这样可以获得更好的清晰度和控制。

    最好单独定义

    dburl =....
    username =....
    password = ...
    

    不过,如果您想解析它,可以使用string的split方法通过逗号进行拆分

    最好单独定义

    dburl =....
    username =....
    password = ...
    

    不过,如果您想解析它,可以使用string的split方法按逗号分割。您可以将键/值对放入如下属性文件中:

    dbUrl = yourURL
    username = yourusername
    password = yourpassword
    
    然后,您可以从属性文件将它们加载到应用程序中:

    private void loadProps() {
        try {
            InputStream is = getClass().getResourceAsStream("database_props.properties");
            props = new Properties();
            props.load(is);
            is.close();
            dbConnStr = props.getProperty("dbUrl");
            username = props.getProperty("username");
            password = props.getProperty("password");
        }
        catch(IOException ioe) {
            log.error("IOException in loadProps");
            for(StackTraceElement ste : ioe.getStackTrace())
            log.error(ste.toString());
        }
    }
    

    然后您可以使用这些值创建连接。

    您可以将密钥/值对放入如下属性文件:

    dbUrl = yourURL
    username = yourusername
    password = yourpassword
    
    然后,您可以从属性文件将它们加载到应用程序中:

    private void loadProps() {
        try {
            InputStream is = getClass().getResourceAsStream("database_props.properties");
            props = new Properties();
            props.load(is);
            is.close();
            dbConnStr = props.getProperty("dbUrl");
            username = props.getProperty("username");
            password = props.getProperty("password");
        }
        catch(IOException ioe) {
            log.error("IOException in loadProps");
            for(StackTraceElement ste : ioe.getStackTrace())
            log.error(ste.toString());
        }
    }
    

    然后您可以使用这些值来创建连接。

    为什么不将其分为几个属性(url、用户名、密码)我不明白这个问题。。。用逗号分割字符串,就这样了。如果第一部分是JDBCURL,那么其余部分很简单。但是正如lweller所说,在这种情况下,你应该使用三个属性。为什么不把它分成几个属性(url、用户名、密码)我不明白这个问题。。。用逗号分割字符串,就这样了。如果第一部分是JDBCURL,那么其余部分很简单。但正如lweller所说,在这种情况下,您应该使用三个属性。一些解决方案使用
    getClass().getResourceAsStream
    ,而其他解决方案使用
    getClass().getClassLoader().getResourceAsStream
    。有区别吗?一些解决方案使用
    getClass().getResourceAsStream
    ,而其他解决方案使用
    getClass().getClassLoader().getResourceAsStream
    。有区别吗?