【问题标题】:Problems reading keys from properties file java从属性文件 java 读取键的问题
【发布时间】: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


【解决方案1】:

这里的问题是我自己的错。因为我正在为我的 ini 使用当前工作目录,所以我忘记将 config.ini 移动到 /bin 文件夹(我正在从 CMD 执行这个应用程序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-06
    • 2018-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-07
    相关资源
    最近更新 更多