2012-01-18 155 views
0
Properties segmentClients = new Properties(); 
segmentClients.load(new FileInputStream(pathSegmentFile)); 

segmentClients.containsKey(strANI); //returns false/strANI = "9202599784" 

文件是这样的:Properties.containsKey返回false,为什么?

# 01.2012 
9202599784 
9202599573 
9208552001 
9209374107 
9209374949 

strANI = 9202599784

为什么它返回false?

UPD:问题是,文件是Unicode的,在ANSI保存后开始工作

+2

这不是一个属性文件... – skaffman 2012-01-18 14:09:52

+0

一个简短而完整的程序演示问题将真正帮助... – 2012-01-18 14:13:03

+1

@skaffman我有点同意,虽然在技术上所有这些数字只是键为空字符串。不是一个有用的属性文件,但... – 2012-01-18 14:21:48

回答

3

segmentClients.containsKey("9202599784");将返回true,因为:

在属性列表中每个键及其对应值是一个字符串。

证明,本次测试将通过:

Properties p = new Properties(); 
p.load(new StringBufferInputStream("# 01.2012\n" + 
       "9202599784\n" + 
       "9202599573\n")); 
assertTrue(p.containsKey("9202599784")); 
+0

,即不是一个'整数' – skaffman 2012-01-18 14:12:26

+0

strANI是一个字符串,它=“9202599784” – VextoR 2012-01-18 14:13:05

+0

感谢您的帮助,问题是该文件是Unicode保存在ANSI后 - 现在工作! – VextoR 2012-01-18 14:17:37

0

如果属性文件中找到并打开您应该检查。

相关问题