【发布时间】:2015-05-14 09:58:32
【问题描述】:
我有一个属性文件,用于控制我的应用程序中的特定变量。由于应用程序一直在工作,因此我使用的所有键都可以正常工作。
ini文件的结构是:
JDBC_DRIVER=com.mysql.jdbc.Driver
DB_URL=localhost/tempTables
EmailList=foo@bar.com
sender=foo_bar@tempfoo.com
host=<sanitised>
port=25
USER=root
PASS=Fo0b4R
path=C:/Users/foo/Desktop/profile_admin_
logLevel=2
TimerControl=2
我遇到问题的具体键是“logLevel”。这将被读取为字符串(使用属性类),然后解析为 int。键“端口”很好地遵循了这个套装,所以我想知道它是否是键名,或者键的数量是否有限制。
每个键的读法如下:
FileInputStream propFile = new FileInputStream("config.ini");
Properties config = new Properties(System.getProperties());
config.load(propFile);
String level = config.getProperty("logLevel");
System.out.println("Purely for testing. Key \"logLevel\" is :"+level);
int levelLogger = Integer.parseInt(level);
System.out.println("Parsed to integer, printed for integrity: "+levelLogger);
//output
Purely for testing. Key "logLevel" is : null
Exception in thread "main"
java.lang.NumberFormatException: nu;;
at java.lang.Integer.parseInt(Unknown Source)
at java.lang.Integer.parseInt(Unknown Source)
at package.myClass.main(myClass.java:63)
【问题讨论】:
-
2后面不是有非打印字符吗? -
@NeplatnyUdaj 你是什么意思?
-
尝试打印
level.length()。如果它高于 1,则会出现一些看不到的字符 -
看起来属性根本没有加载。你确定你打开了正确的文件吗?路径正确吗?
-
这不是一个“ini”文件,它是一个属性文件。足够的混乱已经足够了。
标签: java properties-file