выдает:
Убедитесь, что данные сохраняются правильно, если ключ содержит пробелы
Убедитесь, что данные правильно загружаются, если значение содержит символ двоеточие
Хотя оба эти условия выполняются. Что не устраивает валидатор - не понятно.
package com.javarush.task.task20.task2003;
import java.io.*;
import java.util.HashMap;
import java.util.Map;
/*
Знакомство с properties
*/
public class Solution {
public static Map<String, String> runtimeStorage = new HashMap<>();
public static void save(OutputStream outputStream) throws Exception {
PrintWriter writer = new PrintWriter(outputStream);
if (!runtimeStorage.isEmpty()) {
for (Map.Entry<String, String> pair : runtimeStorage.entrySet()) {
writer.println(pair.getKey() + " = " + pair.getValue());
}
}
writer.flush();
writer.close();
}
public static void load(InputStream inputStream) throws IOException {
try (BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream))) {
while (reader.ready()) {
String str = reader.readLine().trim();
if (str.charAt(0) != '#' && str.charAt(0) != '!') {
String[] properties = str.split("[:=]", 2);
if (properties.length > 1)
runtimeStorage.put(properties[0].trim(), properties[1].trim());
}
}
} catch (IOException exc) {
exc.printStackTrace();
}
}
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);
}
}