Поскольку это пользовательский формат, скорее всего, нет доступной библиотеки. Так что пиши себе.
Вот начальный пример, предполагая, что формат файла является подходящим, как вы разместили в вопросе. Вместо этого вы можете использовать List<Block>
:
Map<Date, Map<String, String>> blocks = new LinkedHashMap<Date, Map<String, String>>();
SimpleDateFormat sdf = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss", Locale.ENGLISH);
BufferedReader reader = null;
try {
reader = new BufferedReader(new InputStreamReader(new FileInputStream("/input.txt"), "UTF-8"));
Date date = null;
Map<String, String> block = null;
for (String line; (line = reader.readLine()) != null;) {
line = line.trim();
if (date == null) {
date = sdf.parse(line);
block = new LinkedHashMap<String, String>();
blocks.put(date, block);
} else if (!line.isEmpty()) {
String[] parts = line.split("\\s*=\\s*");
block.put(parts[0], parts[1]);
} else {
date = null;
}
}
} finally {
if (reader != null) try { reader.close(); } catch (IOException ignore) {}
}
Чтобы проверить содержимое, используйте это:
for (Entry<Date, Map<String, String>> block : blocks.entrySet()) {
System.out.println(block.getKey());
for (Entry<String, String> token : block.getValue().entrySet()) {
System.out.println("\t" + token.getKey() + " = " + token.getValue());
}
System.out.println();
}