使用 Java 从文件中加载带有嵌套 ArrayList 的 ArrayList

Load an ArrayList with nested ArrayLists from a file using Java

我有一个像 ArrayList<ArrayList<String>> 这样的数组列表。我已使用以下代码将主 ArrayList 保存在文本文件中。

 ArrayList<ArrayList<String>> ar2 = new ArrayList<>();
 FileWriter writer = new FileWriter("path/to/the/text/file");
        for(ArrayList<String> str: ar2) {
            writer.write(str + System.lineSeparator());

        }
        writer.close();

现在,我想在每个新 运行 中将保存的数据从文件加载到相同的 ArrayList ar2。我尝试了几种方法,但嵌套的数组列表被加载为字符串。我该如何克服这个问题?

您可以解析字符串并使用迭代将其转换为数组,也可以使用将为您完成此操作的库。

我推荐使用 Jackson,你可以找到一个简单的教程 here

读取文件内容,按行分隔符拆分,然后去掉括号再拆分得到列表项。像

File file = new File("path/to/the/text/file");
FileReader reader = new FileReader(file);

char[] chars = new char[(int) file.length()];
reader.read(chars);

String fileContent = new String(chars);
ArrayList<ArrayList<String>> readList = new ArrayList<>();

String[] splittedArr = fileContent.split(System.lineSeparator());
for(String list : splittedArr) {
    list = list.replace("[", "").replace("]", ""); //removing brackets as the file will have list as [a, b, c]
    List<String> asList = Arrays.asList(list.split(", "));//splitting the elements by comma and space
    readList.add(new ArrayList<>(asList));
}
reader.close();