Возможно, вы просто захотите сохранить HashMap в тот же файл, что и рабочий каталог программы, а затем вызвать содержимое файла при инициализации HashMap для чтения и записи.
Это может быть возможно путем сохранения каждого ключа и его значения в отдельной строке текстового файла с использованием BufferedWriter.
Пример.
BufferedWriter a = new BufferedWriter(new FileWriter("myFile.txt"));
Set<String> keys = hashMap.keySet();
for(String key: keys) {
a.write(key+" "+hashMap.get(key));
write.newLine();
}
a.close();
При этом каждая пара ключ-значение будет храниться в текстовом файле, каждая запись будет находиться на отдельной строке. Затем, когда вы снова запустите программу, вы захотите провести l oop через каждую строку текстового файла и инициализировать новый HashMap, чтобы он содержал все те пары ключ-значение, которые вы сохранили. Затем вы сможете добавить в этот список и получить значения. Всякий раз, когда вы закончите с пользователем, обязательно обновите текстовый файл с любыми новыми сопоставлениями ключ-значение.
Это обновление в начале программы можно выполнить с помощью следующего:
HashMap<String, String> hashMap = new HashMap<>();
Scanner scan = new Scanner(new File("myFile.txt"));
while(scan.hasNextLine()) {
String[] entry = scan.nextLine().split(" ");
hashMap.put(entry[0], entry[1]);
}