Друзья.
Я перешел на 20 уровень, прочитал первую лекцию. Приступил к задачам и не могу решить не одну.
Первые две с горе пополам решил,
а третью, вообще сам не смог. даже не знал с чего начать.
Скопировал ее. вот она
Это решение проходит вали, но я ег не могу понять.
почему load /save сделаны именно так?
Может кто то объяснить их логику?
package com.javarush.task.task20.task2003;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
/*
Знакомство с properties
*/
public class Solution {
public static Map<String, String> properties = new HashMap<>();
public static Properties props = new Properties();
public void fillInPropertiesMap() throws Exception{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
FileInputStream in = new FileInputStream(reader.readLine());
load(in);
//implement this method - реализуйте этот метод
}
public void save(OutputStream outputStream) throws Exception {
Properties tmp_properties = new Properties();
for (Map.Entry<String, String> stringStringEntry : properties.entrySet()) {
tmp_properties.put(stringStringEntry.getKey(), stringStringEntry.getValue());
}
tmp_properties.save(outputStream, null);
outputStream.flush();
//implement this method - реализуйте этот метод
}
public void load(InputStream inputStream) throws Exception {
// BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
props.load(inputStream);
Set<String> list = props.stringPropertyNames();
for (String current : list)
properties.put(current, props.getProperty(current));
// bufferedReader.close();
//implement this method - реализуйте этот метод
}
public static void main(String[] args) {
}
}