Лучший способ хранить / добавлять / удалять простой набор данных в Java - PullRequest
0 голосов
/ 25 апреля 2011

Я хочу, чтобы определенные данные хранились дольше, чем время жизни программы. По сути, это будет идентификационный номер и два других элемента, которые следуют за каждым идентификатором. Всегда будет менее 20 записей, поэтому средства хранения / извлечения не должны быть ограничены проблемами емкости / размера.

Я думал о XML, но, похоже, это немного больше работы, чем необходимо для этой небольшой процедуры. Я также думал о том, чтобы просто сохранить записи в текстовом файле ... Полагаю, самой большой проблемой было бы то, что означает поиск элемента и его удаление.

Я уверен, что у кого-то с большим опытом было бы лучшее представление о том, что я должен сделать. Любые предложения будут высоко ценится.

Ответы [ 2 ]

2 голосов
/ 25 апреля 2011

Как вы упомянули, данные остаются статичными, поэтому их можно рассматривать как данные типа конфигурации. Я рекомендую использовать подход с использованием файла свойств, используя класс 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
        } 
0 голосов
/ 25 апреля 2011

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...