Как мне прочитать / загрузить этот HashMap из текстового файла? - PullRequest
0 голосов
/ 26 апреля 2019

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

В текстовом файле в настоящее время хранится

KEY=VALUE

, например, мой текстовый файл будет выглядеть так:

1=value
2=value
3=value

Текущий способ сохранения файлов в этом файле (не уверен, если это уместно) таков:

    public void save(HashMap<Integer, String> map) {
        try {
            File zone1 = new File("zones/zone1");
            FileOutputStream fileOut = new FileOutputStream(zone1);
            PrintWriter print = new PrintWriter(fileOut);
            for (Map.Entry<Integer, String> m : map.entrySet()) {
                print.println(m.getKey() + "=" + m.getValue());
            }

            print.flush();
            print.close();
            print.close();
        } catch (Exception e) {
        }
    }

Ответы [ 2 ]

0 голосов
/ 28 апреля 2019

Пример для чтения значения ключа из файла и сохранения значения ключа внутри HashMap.

try (InputStream input = new FileInputStream("path/to/file")) {
        Map<Integer,String> loadedFromTextFileHashMap=new HashMap<>();
        Properties prop = new Properties();
        prop.load(input);
        prop.forEach((key, value) -> loadedFromTextFileHashMap.put(Integer.valueOf(key.toString()), value.toString()));
} catch (IOException io) {
        io.printStackTrace();
}
0 голосов
/ 26 апреля 2019

Если вы действительно хотите сделать это вручную (как уже отмечалось в комментариях, это уже реализовано в java.util.Properties), обратитесь к:

java.io.BufferedReader :: ReadLine java.lang.String :: Раскол

...