从java中的文件读取2d数组

时间:2014-09-25 17:49:44

标签: java arrays

我有一个32x32大小的文本文件。例如前两行:

11111111111111111111111111111111
11111111111111111111111111111000
...

我想将这个文件读取并存储在2D数组中。我有以下java代码,但无法准确地弄清楚如何读取文件数据。我想我需要两个嵌套for循环?

public static int[][] readFile(){
BufferedReader br = null;
int[][] matrix = new int[32][32];
try {

    String thisLine;
    int count = 0;


    br = new BufferedReader(new FileReader("C:\\input.txt"));

    while ((thisLine = br.readLine()) != null) {

    //two nested for loops here? not sure how to actually read the data

    count++;
    }
    return matrix;                      


} 
catch (IOException e) {
    e.printStackTrace();
} 
finally {
    try {
        if (br != null)br.close();
        } 
    catch (IOException ex) 
        {
        ex.printStackTrace();
        }
}
return matrix;
}

2 个答案:

答案 0 :(得分:3)

假设文件中的每一行都是一行,并且对于每一行,一个字符是一个条目:

// ...
int i,j;
i = 0;
while((thisLine = br.readLine()) != null) {
    for(j = 0; j < thisLine.lenght(); j++) {
        matrix[i][j] = Character.getNumericValue(thisLine.charAt(j));
    }
    i++;
}
// ...

这只是一个起点...可能有更多有效和干净的方法来做到这一点,但现在你有了这个想法。

答案 1 :(得分:1)

你只需要一个循环,因为你已经拥有的while循环正在作为外循环。

while ((thisLine = br.readLine()) != null) {
    for(int i = 0; i < thisLine.length(); i++){
        matrix[count][i] = Character.getNumericValue(thisLine.charAt(i));;
    }

count++;
}