我通过读取文件创建了一个二维数组,我想返回这个数组。但是,由于读取文件,我使用 try-catch 块。此时我无法从该函数返回此数组。此外,当我尝试在 try-catch 块中写入此数组的元素时,它可以工作,但在块外却不行。我应该怎么做才能得到数组?
我的代码如下:
public static double[][] readFile(String fileName) {
final double[][]data = new double[178][13];
int x=0, y=0;
try{
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
while((line = reader.readLine())!= null){
String[]values=line.split(",");
for(String str:values){
double str_double=Double.parseDouble(str);
data[x][y]=str_double;
System.out.print(data[x][y]+" ");
}
System.out.println();
}
reader.close();
}
catch(Exception e){}
return data;
}
最后,在大家的帮助下,我找到了解决方案。我的错误之一是定义 y。因为每行有 14 个元素,但我将其分配给 13。我还更改了数组的分配方法。也许有人需要,所以我将其发布到我的解决方案:
public static double[][] readFile(String fileName) {
double[][]data=new double[178][14];
int x=0, y;
try{
BufferedReader reader = new BufferedReader(new FileReader(fileName));
String line;
String[]values;
while((line = reader.readLine())!= null){
values=line.split(",");
for(y=0; y<values.length; y++){
data[x][y]=Double.parseDouble(values[y]);
}
x++;
}
reader.close();
}
catch(Exception e){System.out.println("Aborting due to error: " + e);}
return data;
}