读取以下格式的文本文件:
line1
line2
line3
line4
用例是将前两行附加到一个列表中,将最后两行附加到另一个列表中,最后将这两个列表附加到一个列表列表中。
代码:
public static void readUI() {
try {
BufferedReader br = new BufferedReader(new FileReader(filePath2));
ArrayList list = new ArrayList();
ArrayList<ArrayList<String>> checkList = new ArrayList<>();
String line;
String[] splitline;
String[] subSplit;
//populating the first list
while ((line = br.readLine()) != null) {
System.out.println(line);
if (!line.trim().isEmpty()) {
list.add(line.trim());
} else {
checkList.add(list);
list.clear();
}
}
//System.out.println(checkList);
//System.out.println(checkList.get(0));
//System.out.println(checkList.get(1));
} catch (IOException e) {
System.out.println("OOPS! File could not read!");
}
}
逻辑解释:
从文件中读取行并继续将其附加到列表中,当我遇到空行时将列表附加到列表列表中并清除单个列表。
错误:
它作为一个列表而不是 2 个列表附加到列表列表中。
关于如何纠正它有什么建议吗?
最佳答案
您永远不会在到达新行时创建新列表。相反,您将列表添加到另一个列表,然后将其清除。
而不是调用 list.clear()
您需要使用 list = new ArrayList<>()
重新分配它
关于java - 在 Java 中读取一个文本文件直到一个空行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43880250/