2012-06-10 3 views
0

Я хочу, чтобы иметь какой-то файл, содержащий текст, вроде как это:Поиск данных в текстовом файле?

John.file: 
Name= John 
Age = 333 

И в моей программе, я хотел бы, чтобы каким-то образом сделать человека с этими данными, вроде как:

Person p = new Person(John.file); 

Что могло бы быть хорошими альтернативами для поиска данных в файле, чтобы я мог добавить, например, «333» к переменной возраста Person p? Я думал о том, чтобы попробовать regex api, если нет других альтернатив!

+0

Что такое 'John.file', когда вы передаете его как аргумент конструктору' Person' ?? Строка или что-то еще ??? т. е. какой тип аргумента принимает конструктор 'Person'? – WickeD

+0

Самый простой способ - это то, как вы идете. Хранение информации в 'файле' и извлечение и назначение атрибутов соответствующим переменным. Просто примечание - если вы хотите, чтобы вещи были проще, просто у вас есть важные вещи, хранящиеся в вашем 'файле', например' John, '333' и т. Д. Избегайте 'Name ='. Это если вы хотите сделать свой путь очень легким, и «файл» не имеет никакой цели, а должен быть релевантным для вашей Java-программы. –

ответ

4

Вы можете выполнить то, что вы хотите делать с функциональностью файла свойств, которая является частью JDK. См. the documentation для получения дополнительной информации.

Properties properties = new Properties(); 
try { 
    properties.load(new FileInputStream("/my/path/John.properties")); 
} catch (IOException e) { 
    ... 
} 
System.out.println(properties.getProperty("Name")); // Prints John 

Для полноты, вот содержание /my/path/John.properties.

Name=John 
Age=333 
+0

'// Печать John' Или, возможно,« null », если вызывается catch. ;) Было бы правдой, если бы это был оператор кода сразу после 'properties.load (..' –

+0

@ AndrewThompson Point take! Просто для экстремальной простоты, чтобы продемонстрировать на примере. :) – cheeken

2

Определенно используйте XML для этого. Вы можете использовать JAXB для десериализации XML в класс Java. Для простого класса, подобного тому, который вы описали, это было бы тривиальным вопросом. XML будет выглядеть примерно так:

<Person> 
<Name>John</Name> 
<Age>333</Age> 
</Person> 
+1

Мне жаль, но я думаю, что вы не обязательно усложняете вещи для OP !! – WickeD

+1

@WickeD Ничего сложного в этом нет. В конечном итоге это упростит ситуацию. – Hassan

+0

Я просто говорю, что из того, что я могу собрать из вопроса ОП, он _relatively_ новый для java и может найти это запутанным! – WickeD

2

XML, JSON, файл индивидуальные свойства, или ваш собственный парсер, может быть, основанный на Knuth-Morris-Pratt?

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