java - 从文件数据构建两个二维数组

标签 java arraylist

我的任务是将两个矩阵写入一个文件(我已经完成了),然后从文件中读取数据以执行各种计算。我遇到的困难是在方法中重建每个矩阵来执行计算。我决定使用 ArrayList 的 ArrayList,以获得我需要的二维矩阵。使用 BufferedReader,我需要循环遍历一个矩阵,将元素添加到一个数组列表,然后对第二个矩阵执行此操作。我在矩阵上方添加了标题作为标记来查找我想要使用的矩阵数据。有更好的方法吗?

public void sum() throws IOException {

    ArrayList<ArrayList<Integer>> matrixArray = new ArrayList<>();

    while(br.read() != -1) {
        ArrayList row = new ArrayList();

        //tried this, using two println spaces between matrices
        //but realized can't use readline this way     
        while(!br.readLine().equals("\n\n")) {
            row.add(br.read());
        }
        matrixArray.add(row);   
    }

文件数据的格式为:

Matrix One
A  B
C  D

Matrix Two
A  B
C  D

--更新--来自下面的评论

while(file.hasNext()) {
if(file.hasNext("Matrix One")){
    //Fill arraylist with row data until \n
    while(file.hasNextInt()) {
        row.add(file.nextInt());
    }  
        matrixOne.add(row);
    }
     else if(file.hasNext("Matrix Two")) {
       row.clear();
         while(file.hasNextInt()) {
             row.add(file.nextInt());
         }
         matrixTwo.add(row);
    }
   }

最佳答案

您应该使用java.util.Scanner类。它更容易使用,并且允许您逐行阅读。

一旦获得单独的行,您可以调用String#split方法使用空格分隔数字。

这将为您提供一个String数组。现在,您可以轻松调用 Integer.parseInt 方法从 String 中检索 int 并将其添加到 ArrayList 中。

希望这有帮助。

关于java - 从文件数据构建两个二维数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29812861/

相关文章:

java - 在 HTML 下拉框中显示 hashmap 值

java - 如何将 ArrayList 的随机索引相互配对

java - 如何在 ArrayList 中提取数据直到 RAM 不耗尽

java - 使用扫描仪读取文件时出现异常

java - 为什么gradle创建的jar文件中没有.class文件?

java - 不支持请求方法 'HEAD'

java - 从具有多个变量的方法返回值

java - JDK 中的加密提供者

java - 对于 java 上的幻想草稿程序,我如何将数据从文本文件加载到单独的 ArrayList 列表中?

java - 如何从我的 fragment 之一添加数据,并将其传递到我的适配器,并将其设置到我的数组列表?