我的任务是将两个矩阵写入一个文件(我已经完成了),然后从文件中读取数据以执行各种计算。我遇到的困难是在方法中重建每个矩阵来执行计算。我决定使用 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/