2

プロパティファイルに現在の値を表示するいくつかのテキストフィールドを持つスイングフレームがあります。テキスト フィールドでこれらのプロパティを変更したら、プロパティ ファイルに保存し直す必要があります。私が持っているプロパティは、データベース接続パラメーターです。私の接続パラメータは次のとおりです

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();
}
4

2 に答える 2

1

ストア API のJava ドキュメントに従って、出力ストリームへの書き込み中に一部の文字がエスケープされます。

したがって、コロン「:」は「\:」に変換されます。

出力ストリームに書き込む前に文字をエスケープすることが解決策になることを願っています。プロパティ インスタンスに変換する際、エスケープ文字は必要に応じて処理されます。

于 2013-06-13T06:54:03.820 に答える