在Java中输入setProperty的全宽冒号(:)

时间:2014-05-21 10:43:08

标签: java escaping

我试图设置我的数据库属性,因此将来如果用户想要更改数据库的路由,可以更改它。问题是当我尝试设置全宽冒号时,它总是添加一个反斜杠转义字符。

我尝试过正常和双重逃避,但它无法正常工作。

import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.util.Properties;

public class SetProps {

public static void SetDefaultProps(){
    Properties prop = new Properties();
OutputStream output = null;

try {

    output = new FileOutputStream("./build/classes/configuracion.properties");

    // Set the database property
    prop.setProperty("url", "jdbc:mysql://192.168.1.192:3306/ordenestaller");


// Save Properties
    prop.store(output, null);

} catch (IOException io) {
    io.printStackTrace();
} finally {
    if (output != null) {
        try {
            output.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}
}
public static void main(String[] args) {
        SetDefaultProps();
    }
}

1 个答案:

答案 0 :(得分:0)

在java代码中对db url进行硬编码不是一个好的编码实践。 我建议你把这些网址放在属性文件中,并在需要时使用ResouceBundle读取它们。

你可以拥有" information.properties"在类路径中的某个位置,该文​​件的内容可以是

dbURL:jdbc:mysql://192.168.1.192:3306/ordenestaller

现在在您的代码中,您可以使用ResourceBundle

来获取此代码
ResourceBundle bundle = ResourceBundle.getBundle("information");
String dbURL= bundle.getString("dbURL");

这将有一个额外的好处,即如果更改了DB URl,则无需再次重新编译java类。

希望有所帮助