程序添加'\';在';之前:';在Java中编写.properties文件时
我正在尝试更新程序中的database.properties文件。然而, Java似乎在我的属性文件中添加了额外的字符 这是我的一段代码程序添加'\';在';之前:';在Java中编写.properties文件时,java,postgresql,properties,io,Java,Postgresql,Properties,Io,我正在尝试更新程序中的database.properties文件。然而, Java似乎在我的属性文件中添加了额外的字符 这是我的一段代码 Properties props = new Properties(); String propsFileName = "src/resources/properties/" + "database.properties"; String[] property = new String[4]; proper
Properties props = new Properties();
String propsFileName = "src/resources/properties/" + "database.properties";
String[] property = new String[4];
property[0] = "database.properties";
property[1] = url.getText();
property[2] = username.getText();
property[3] = password.getText();
try {
FileInputStream configStream = new FileInputStream(propsFileName);
props.load(configStream);
configStream.close();
props.setProperty("jdbc.driverClassName", Commons.driverClassName);
props.setProperty("jdbc.url", property[1]);
props.setProperty("jdbc.username", property[2]);
props.setProperty("jdbc.password", property[3]);
props.setProperty("jdbc.comment", comments.getText());
FileOutputStream output = new FileOutputStream(propsFileName);
props.store(output, null);
output.close();
} catch (IOException ex) {
ex.printStackTrace();
}
我的控制台上有一个输出,检查我是否得到了我想要的字符串
Properties=org.postgresql.Driver,
jdbc:postgresql://192.168.1.1:1234/db,用户名,
密码,空程序运行于2017年6月23日星期五16:00:37 PHT由
用户=xngapp234
然而,在我的database.properties文件中,我得到了这个输出
jdbc.url=jdbc\:postgresql\://192.168.1.1\:1234/db
jdbc.username=username
jdbc.password=password
jdbc.comment=
jdbc.driverClassName=org.postgresql.Driver
它在“:”之前加上“\”,这总是给我一个错误。感谢您的帮助。
谢谢 如果您试图从Java程序存储和加载属性,那么一切都正常工作!您的代码显示,读取url时不带反斜杠,就像存储url一样 正如Berger所写,这是java.properties文件中的正常转义。这记录在Properties.store()的中: […]键和元素字符#,!,=,和:都是用a写的 前面的反斜杠,以确保正确加载。[……] 如果您试图使用Properties类来编写一个文件供非Java程序使用,那么您就运气不佳,因为这不是这个类的目的。你需要用另一个图书馆来做这件事 javadoc声明 Properties类表示一组持久的属性
“.properties”-格式只是一组属性的一种表示形式(XML格式是另一种格式)。如果您试图从Java程序存储和加载属性,那么一切都正常工作!您的代码显示,读取url时不带反斜杠,就像存储url一样 正如Berger所写,这是java.properties文件中的正常转义。这记录在Properties.store()的中: […]键和元素字符#,!,=,和:都是用a写的 前面的反斜杠,以确保正确加载。[……] 如果您试图使用Properties类来编写一个文件供非Java程序使用,那么您就运气不佳,因为这不是这个类的目的。你需要用另一个图书馆来做这件事 javadoc声明 Properties类表示一组持久的属性
“.properties”-格式只是一组属性的一种表示形式(XML格式是另一种格式)。在
\:
中是\
而不是:
之前的格式吗?不相关:您对该字符串数组的使用没有多大意义。它相当混乱您的代码。使用插槽0作为文件名不是一种好的样式,而其他3个插槽表示要打印到该文件中的值。如果是,请考虑使用<代码> map < /C> >:关键字表示属性名称、值以及值。或者干脆完全放下那个数组。它不会为您当前的代码添加任何值。问题是什么?为什么您认为是添加的反斜杠导致的?这是java属性文件中:
的正常转义<代码>道具.加载应该检索正确的值。因此,真正的答案是:下次做一些研究;并研究您正在使用的类的javadoc;-)在\:
中,\
不是在:
之前吗?不相关:您对该字符串数组的使用没有多大意义。它相当混乱您的代码。使用插槽0作为文件名不是一种好的样式,而其他3个插槽表示要打印到该文件中的值。如果是,请考虑使用<代码> map < /C> >:关键字表示属性名称、值以及值。或者干脆完全放下那个数组。它不会为您当前的代码添加任何值。问题是什么?为什么您认为是添加的反斜杠导致的?这是java属性文件中:
的正常转义<代码>道具.加载应该检索正确的值。因此,真正的答案是:下次做一些研究;并研究您正在使用的类的javadoc;-)