Задача:
Метод main() считывает имя файла с консоли и заполняет runtimeStorage данными из файла.
В методах save() и load() реализуй логику записи в файл и чтения из файла для карты runtimeStorage.
Файл должен быть в формате .properties. Комментарии в файле можно игнорировать.
Про .properties почитать тут — http://ru.wikipedia.org/wiki/.properties
Требования:
-
Метод save() должен сохранять карту runtimeStorage в параметр outputStream.
-
Метод load() должен восстанавливать состояние карты runtimeStorage из параметра inputStream.
Решение:
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
public class Solution {
public static Map< String, String > runtimeStorage = new HashMap< >();
public static void save(OutputStream outputStream) throws Exception {
Properties prop = new Properties();
prop.putAll(runtimeStorage);
prop.store(outputStream, "");
}
public static void load(InputStream inputStream) throws IOException {
Properties prop = new Properties();
prop.load(inputStream);
prop.forEach( (k, v) -> runtimeStorage.put( (String)k, (String)v) );
}
public static void main(String[] args) {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream fos = new FileInputStream(reader.readLine())) {
load(fos);
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(runtimeStorage);
}}