В файл пишет, из файла в карту читает.
package com.javarush.task.task20.task2003;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/*
Знакомство с properties
В методе fillInPropertiesMap считайте имя файла с консоли и заполни карту properties данными из файла.
Про .properties почитать тут - http://ru.wikipedia.org/wiki/.properties
Реализуй логику записи в файл и чтения из файла для карты properties.
Требования:
1. Метод fillInPropertiesMap должен считывать данные с консоли.
2. Метод fillInPropertiesMap должен создавать FileInputStream, передавая считанную строку в качестве параметра.
3. Метод fillInPropertiesMap должен вызывать метод load передавая только что созданный FileInputStream в качестве параметра.
4. Метод save должен сохранять карту properties в полученный в качестве параметра объект типа OutputStream.
5. Метод load должен восстанавливать состояние карты properties из полученного в качестве параметра объекта типа InputStream.
ключ=значение, ключ = значение, ключ:значение и ключ : значение
*/
public class Solution {
public static Map<String, String> properties = new HashMap<>();
public void fillInPropertiesMap() throws IOException{ //Читает из файла и заполняет карту
try{
InputStream inputStream = new FileInputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());
load(inputStream);
} catch (Exception e) {
e.printStackTrace();
}
}
public void save(OutputStream outputStream) throws Exception { //Сохраняет карту в файл
try(PrintWriter pw = new PrintWriter(outputStream))
{
for(Map.Entry e : properties.entrySet()){
pw.print(e.getKey().toString());
pw.print(" : ");
pw.println(e.getValue().toString());
}
}
}
public void load(InputStream inputStream) throws Exception { //Записывает данные из файла в карту
try{
BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
String[] temp;
while(br.ready()){
temp = br.readLine().split("( = | : |=|:)");
for(int i = 0; i < temp.length; i += 2){
properties.put(temp[i], temp[i + 1]);
}
}
br.close();
} catch (Exception e){
e.printStackTrace();
}
}
public static void main(String[] args) throws IOException {
Solution s = new Solution();
for(int i = 200; i < 205; i++){
properties.put("key " + i , "value " + i);
}
s.fillInPropertiesMap();
//
for(Map.Entry e : properties.entrySet()){
System.out.println(e.getKey() + " " + e.getValue());
}
//
try
{
OutputStream outputStream = new FileOutputStream(new BufferedReader(new InputStreamReader(System.in)).readLine());
s.save(outputStream);
} catch (Exception e) {
e.printStackTrace();
}
//for(Map.Entry e : properties.entrySet()){
// System.out.println(e.getKey() + " " + e.getValue());
//}
}
}