чтение хэш-карты свойств java

#java #properties #hashmap

#java #свойства #хэш-карта

Вопрос:

Ответ Я только что нашел то, что искал:

 Properties properties = new Properties();
FileInputStream in = new FileInputStream("/somePath/file.map");
properties.load(in);
in.close();
HashMap<String, String> propMap = new HashMap<String, String>((Map) properties);
  

Это позволило мне вернуть открытые данные свойства обратно в хэш-карту без необходимости знать имена свойств.

оригинальный вопрос.

У меня есть следующий код, который записывает результаты хэш-карты. Мне интересно, как проще всего открыть резервную копию этого свойства и перенести данные обратно в хэш-карту, putAll был хорошим способом перенести данные в свойство и сохранить данные. Я не вижу GetAll для его извлечения, а данные ключа / значения HashMap не были известны до создания hashmap, поэтому их нельзя просто получить по имени свойства. Данные после их создания будут статическими, поэтому я мог бы физически открыть файл, записанный на основе хэш-карты, чтобы получить имена свойств, но предпочел бы не делать этого таким образом. Спасибо за любую помощь.

 Properties properties = new Properties();
properties.putAll(mapTabSets);
properties.store(new FileOutputStream("/somePath/file.map"),"Java properties);
  

Ответ №1:

Хотя свойства не имеют функции GetAll, они имеют

 propertynames()
stringPropertyNames()
  

оба из которых будут предоставлять коллекцию всех ключей свойства. Затем вы можете выполнить итерацию по коллекции и извлечь все значения из свойства с помощью

 properties.getProperty(String)
  

Комментарии:

1. Спасибо.. Оба ответа мне очень помогли, но я использовал propertynames() для получения ключей в виде коллекции, поэтому проверьте это, но оба получили один ответ.

Ответ №2:

Попробуйте выполнить следующее.

 Properties properties = new Properties();
properties.load(new FileInputStream("/somePath/file.map"));
  

Комментарии:

1. Спасибо, у меня не было проблем с открытием файла свойств, просто я не был уверен, как вернуть его в мою хэш-карту, но я понял это и добавил комментарий к своему вопросу.

2. Следует отметить, что свойства — это реализация хэш-таблицы, которая технически является картой (имеет пары ключ-значение). Удачи.

3. Это очень помогло. Спасибо.. Кажется, что они обрабатываются немного по-другому при получении данных, например, в цикле for, если я понимаю, что я читаю, но это помогло мне лучше понять это.

Ответ №3:

     package com.mkyong.common;

    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Properties;

    public class ClassName {

        private static HashMap<String, String> mymap = new HashMap<String, String>();

        public ClassName() throws IOException{
            Properties prop = new Properties();
            prop.load(ClassName.class.getClassLoader().getResourceAsStream("ini.properties"));

            mymap.put("1", prop.getProperty("required.firstName"));
            mymap.put("2", prop.getProperty("required.lastName"));
            mymap.put("3", prop.getProperty("equired.address"));
        }

        public static void main(String[] args) throws IOException {
            ClassName className = new ClassName();
            System.out.println("The Value of Key-1 ::"   mymap.get("1"));
        }
    }

Use the properties file:-
****************************
required.firstName=Nitesh
required.lastName=Rathore
required.address=DangeChowk