大家感谢您的时间和帮助,我有一个Java表单,用于创建和读取java的属性文件。
我可以编写例如config.properties
的文件,但是当我尝试阅读时,我得到一个错误的字符串信息
USENAME =一
path = / home / a / desktop
private void formWindowOpened(java.awt.event.WindowEvent evt) {
try {
InputStream inStream = new FileInputStream("config.properties");
Properties rbReg = new Properties();
rbReg.load(inStream);
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
DateFormat timeFormat = new SimpleDateFormat("HH:mm:ss");
Date date = new Date();
text_box_smtp_server.setText(rbReg.getProperty("path"));
System.out.println(rbReg);
} catch (Exception e) {
System.out.println("Error reading config file " + e);
}
我想用文本的内容填充文本,例如: {u s e r n a m e = a,p a t h = / h o m e / a / D e s k t o p} 而不是{username = a,path = / home / a / Desktop}。我输入的问题只是文本的形式。现在我需要检查一下?或改变?
答案 0 :(得分:0)
标准Properties
类不支持您要查找的功能。 public synchronized void load(InputStream inStream)
类的Properties
方法期望属性与Key
,Value
配对相似。Key
是一个没有任何空格或{{{ 1}}或=
。现在,如果你想保持你的属性如下:
:
你想要获得关键“路径”的“/ home / a / Desktop”,那么你需要以不同的方式处理它。一般的想法是将InputStream加载到 u s e r n a m e = a
p a t h = /h o m e / a / D e s k t o p
类的实例中,从中滑动空白区域。你可以像下面这样做:
Properties
您只需要使用上面的代码替换 InputStream inputStream = new FileInputStream("config.properties");
BufferedReader br = null;
StringBuilder sb = new StringBuilder();
String line;
br = new BufferedReader(new InputStreamReader(inputStream));
while ((line = br.readLine()) != null) {
int length = line.length();
for (int i = 0; i < length; i++) {
if (line.charAt(i) != ' ') {
sb.append(line.charAt(i));
}
}
sb.append('\n');
}
InputStream inStream = new ByteArrayInputStream(sb.toString().getBytes());
块中的第一行。干杯!