我有一個帶有一些文本字段的Swing框,它在屬性文件中顯示當前值。一旦我在文本字段中修改這些屬性,它應該保存回屬性文件。我有的屬性是數據庫連接參數。我的連接參數如下使用java設置屬性文件
driver--org.postgresql.Driver
url--jdbc:postgresql://localhost/bank
user--postgres
password--aaa
但是,當它更新,在URL字段,在那裏曾經有一個「:」,它增加了一個「\」 像URL2=jdbc\:postgresql\://localhost/bank
。我怎樣才能避免這種情況?我在設置屬性文件之前嘗試打印內容,然後確定。 我在設置屬性之前打印了字符串,這裏是對的;
org.postgresql.Driver **jdbc:postgresql://localhost/bank**postgres**aaa
有人能幫我嗎。 由於提前
public static void update(String driver,String url, String user,String password) throws SecurityException, IOException{
System.out.println(driver+" **"+url+"**"+user+"**"+password);
FileInputStream in = new FileInputStream("evaluator.properties");
Properties props = new Properties();
props.load(in);
in.close();
FileOutputStream out = new FileOutputStream("evaluator.properties");
props.setProperty("Driver2", driver);
props.setProperty("URL2", url);
props.setProperty("Login2", user);
props.setProperty("Password2", password);
props.store(out, null);
out.close();
}
沒關係,它會一切工作;但是,這很煩人 – fge
這是屬性API的工作原理,它需要轉義某些字符。當你讀回屬性(通過'Properties'類)時,它們看起來如何? – MadProgrammer
正如@MadProgrammer所提到的,如果你在props.load(in);行之後直接添加一個'props.list(System.err);',你可以驗證重載後的屬性看起來好看嗎 –