2012-01-18 4 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 

Stráni = 9202599784

почему он возвращает ложь?

UPD: Проблема заключалась в том, что файл был в Unicode, после сохранения в ANSI начал работать

+2

Это не файл свойств ... – skaffman

+0

Короткая, но полная программа, демонстрирующая проблему, действительно поможет ... –

+1

@ skaffman Я согласен, хотя технически все эти числа являются просто ключами к пустым строкам. Не полезный файл свойств, но ... –

ответ

3

segmentClients.containsKey("9202599784"); возвращает истину, потому что:

Каждый ключ и его соответствующее значение в списке свойств это строка.

доказательство, этот тест будет проходить:

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

т. Е. Не целое число – skaffman

+0

strANI - это строка, которая = "9202599784" – VextoR

+0

Благодарим за помощь, проблема в том, что файл был в Юникоде, после сохранения в ANSI - теперь работает! – VextoR

0

Вы должны проверить, если файл свойств найден и открыт.

Смежные вопросы