java.lang.IllegalArgumentException: 'hello' 不包含等号
java.lang.IllegalArgumentException: 'hello' does not contain an equals sign
我目前正在使用 Apache 公共配置库从文件写入和读取数据。我能够将键值对 colors=hello 保存到 user..properties 文件,但是当我尝试读取该值时出现以下异常。
Exception in thread "main" java.lang.IllegalArgumentException: 'hello' does not contain an equals sign
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:625)
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:579)
at com.code.prep.CommonsMain.readProperties(CommonsMain.java:21)
at com.code.prep.CommonsMain.main(CommonsMain.java:12)
代码如下
package com.code.prep;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
public class CommonsMain {
public static void main(String[] args) {
CommonsMain main = new CommonsMain();
main.readProperties();
// main.writeProperties();
}
public void readProperties(){
PropertiesConfiguration config = new PropertiesConfiguration();
try {
config.load("user.properties");
System.out.println(config.getProperties("colors"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
public void writeProperties(){
PropertiesConfiguration config = new PropertiesConfiguration();
try {
config.load("user.properties");
config.setProperty("colors", "hello");
config.save("user.properties");
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
}
class 路径中的 Jars 是:
commons-configuration-1.9.jar
commons-lang-2.4.jar
commons-logging-1.1.1.jar
user.properties 包含
颜色 = 你好
用户 = thejavamonk
这看起来不像是库问题。打开您的文件并检查数据是否实际可用。从你的代码看来你正在做 -
main.readProperties();
// main.writeProperties();
不写怎么会有数据?先调用writeProperties()
方法再读回来
你不应该使用
config.getProperties("colors")
但是
config.getProperty("colors")
"getProperties(code)" 正在您的 user.properties 文件中查找(多行)以下格式的行:
code key=val
所以它期待你的代码,因为它有这样的行:
colors foreground=black
colors background=white
等等
我目前正在使用 Apache 公共配置库从文件写入和读取数据。我能够将键值对 colors=hello 保存到 user..properties 文件,但是当我尝试读取该值时出现以下异常。
Exception in thread "main" java.lang.IllegalArgumentException: 'hello' does not contain an equals sign
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:625)
at org.apache.commons.configuration.AbstractConfiguration.getProperties(AbstractConfiguration.java:579)
at com.code.prep.CommonsMain.readProperties(CommonsMain.java:21)
at com.code.prep.CommonsMain.main(CommonsMain.java:12)
代码如下
package com.code.prep;
import org.apache.commons.configuration.ConfigurationException;
import org.apache.commons.configuration.PropertiesConfiguration;
public class CommonsMain {
public static void main(String[] args) {
CommonsMain main = new CommonsMain();
main.readProperties();
// main.writeProperties();
}
public void readProperties(){
PropertiesConfiguration config = new PropertiesConfiguration();
try {
config.load("user.properties");
System.out.println(config.getProperties("colors"));
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
public void writeProperties(){
PropertiesConfiguration config = new PropertiesConfiguration();
try {
config.load("user.properties");
config.setProperty("colors", "hello");
config.save("user.properties");
} catch (ConfigurationException e) {
e.printStackTrace();
}
}
}
class 路径中的 Jars 是:
commons-configuration-1.9.jar commons-lang-2.4.jar commons-logging-1.1.1.jar
user.properties 包含
颜色 = 你好 用户 = thejavamonk
这看起来不像是库问题。打开您的文件并检查数据是否实际可用。从你的代码看来你正在做 -
main.readProperties();
// main.writeProperties();
不写怎么会有数据?先调用writeProperties()
方法再读回来
你不应该使用
config.getProperties("colors")
但是
config.getProperty("colors")
"getProperties(code)" 正在您的 user.properties 文件中查找(多行)以下格式的行:
code key=val
所以它期待你的代码,因为它有这样的行:
colors foreground=black
colors background=white
等等