#java #properties
#java #свойства
Вопрос:
Я хочу, чтобы определенные данные хранились дольше срока службы программы. В основном это будет идентификационный номер и два других элемента, которые следуют за каждым идентификатором. В любое время было бы менее 20 записей, поэтому средства их хранения / извлечения не должны были бы ограничиваться проблемами с емкостью / размером.
Я думал о XML, но, похоже, это требует немного больше работы, чем необходимо для такой небольшой процедуры. Я также думал о том, чтобы просто сохранить записи в текстовом файле… Я полагаю, что самой большой проблемой было бы то, что означает поиск элемента и удаление элемента.
Я уверен, что у кого-то с большим опытом была бы лучшая идея о том, что я должен делать. Любые предложения будут высоко оценены.
Комментарии:
1. Итак, будут ли эти данные меняться при выполнении приложения или они статичны?
2. Фактические данные не изменятся, нет.
Ответ №1:
Как вы упомянули, данные остаются статическими, поэтому их можно рассматривать как данные типа конфигурации. Я рекомендую использовать здесь подход с использованием файла свойств, используя класс Properties.
Вы можете ознакомиться с руководствами по его использованию здесь, а также с другим здесь.
Для вашего сценария ключом будет id
число, а значениями будут 2 элемента, соответствующие этому id
числу.
Пример файла MyApp.props:
id= значения
1 =a, b
2 = c, d
Затем вы можете получить значения таким образом:-
Properties properties = new Properties();
try {
properties.load(new FileInputStream("myApp.props"));
if(properties.containsKey("1")){
String[] propertyValues = properties.getProperty("1").split(","); //gets you a and b
}
} catch (IOException e) {
//handle it
} finally{
//handle it
}
Комментарии:
1. Должен согласиться, что это один из самых простых способов хранения информации
Ответ №2:
Если вы не заинтересованы в том, чтобы сделать хранилище данных доступным для чтения человеком, подумайте о том, чтобы сделать ваш объект сериализуемым и просто сериализовать его в поток вывода файла.
Вы даже можете сериализовать списки сериализованных объектов.