Как уже упоминал @MadProgrammer, алгоритм будет if (input.equals("---------")) { /* create new sublist */ }
. Там будет несколько проверок, которые прямо вперед. Не стесняйтесь комментировать в случае каких-либо сомнений / проблем.
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
String line;
List<ArrayList<String>> list = new ArrayList<ArrayList<String>>();
List<String> sublist = new ArrayList<String>();
int row = 1;
try {
Scanner reader = new Scanner(new File("file.txt"));
while (reader.hasNextLine()) {
line = reader.nextLine();
if (line != null && row != 1 && line.equals("---------")) {
list.add(new ArrayList<String>(sublist));
sublist = new ArrayList<String>();
} else {
if (!line.equals("---------")) {
sublist.add(line);
}
row++;
}
}
} catch (FileNotFoundException e) {
System.out.println("Error: unable to read file.");
}
System.out.println(list);
}
}
Вывод:
[[line11, line12, line13], [line21, line22, line23, line24, line25], [line31, line32]]