#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