使用java从文件加载带有嵌套arraylist的arraylist

xtfmy6hx  于 2021-07-06  发布在  Java
关注(0)|答案(2)|浏览(591)

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

  1. ArrayList<ArrayList<String>> ar2 = new ArrayList<>();
  2. FileWriter writer = new FileWriter("path/to/the/text/file");
  3. for(ArrayList<String> str: ar2) {
  4. writer.write(str + System.lineSeparator());
  5. }
  6. writer.close();

现在,我想将保存的数据从文件加载到 ArrayList ar2 在每一次新的跑步中。我尝试了几种方法,但是嵌套的ArrayList是作为字符串加载的。如何克服这个问题?

ovfsdjhp

ovfsdjhp1#

读取文件内容,按行分隔符拆分,然后移除方括号并再次拆分以获取列表项。像这样的

  1. File file = new File("path/to/the/text/file");
  2. FileReader reader = new FileReader(file);
  3. char[] chars = new char[(int) file.length()];
  4. reader.read(chars);
  5. String fileContent = new String(chars);
  6. ArrayList<ArrayList<String>> readList = new ArrayList<>();
  7. String[] splittedArr = fileContent.split(System.lineSeparator());
  8. for(String list : splittedArr) {
  9. list = list.replace("[", "").replace("]", ""); //removing brackets as the file will have list as [a, b, c]
  10. List<String> asList = Arrays.asList(list.split(", "));//splitting the elements by comma and space
  11. readList.add(new ArrayList<>(asList));
  12. }
  13. reader.close();
展开查看全部
6mw9ycah

6mw9ycah2#

您可以解析字符串并使用迭代将其转换为数组,也可以使用一个库来为您完成这项工作。
我建议使用Jackson,你可以在这里找到一个简单的教程。

相关问题