Извлечь список файлов строк между шаблоном в Java
У меня есть файл, как -
--------------
abc
efg
hig
---------------
xyz
pqr
---------------
fdg
gege
ger
ger
---------------
Какой лучший способ написать код Java, который анализирует этот файл и создает отдельный список для каждого блока текста между тире. Например -
List<String> List1 = {abc, efg, hig}
List<String> List2 = {xyz, pqr}
List<String> List3 = {fdg, gege, ger, ger}
1 ответ
Ты можешь использовать java.nio.file.Files.lines(Path path)
читать файл и читать каждую строку, используя Stream<String>
представлять одну строку входного файла. Вот небольшой пример:
public static void main(String[] args) throws IOException {
final List<List<String>> lines = new CopyOnWriteArrayList<>();
final String separator = "---------------";
Files.lines(new File("/tmp/lines.txt").toPath())
.forEach(line -> {
if (separator.equals(line)) {
lines.add(new ArrayList<>());
} else {
lines.get(lines.size() - 1).add(line);
}
});
// Remove last empty list
lines.remove(Collections.emptyList());
lines.forEach(System.out::println);
}
Выход
[abc, efg, hig]
[xyz, pqr]
[fdg, gege, ger, ger]