Лучшие средства для хранения / добавления / удаления простого набора данных в Java

#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:

Если вы не заинтересованы в том, чтобы сделать хранилище данных доступным для чтения человеком, подумайте о том, чтобы сделать ваш объект сериализуемым и просто сериализовать его в поток вывода файла.

Вы даже можете сериализовать списки сериализованных объектов.