我有一个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;
}
答案 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++;
}