Java 方法调用,返回arraylist总为空问题

程序代码如下,例如namelist.txt文件里有两行名字为lisa,andy john,ann但是返回值总为空,是方法有问题还是调用有问题?还是返回值的位置问题?

返回arraylist是老师要求的,如果代码冗长繁琐请轻拍。。(不明白为什么粘贴上来这个样子,请见谅)

//读取CSV文件,并输出你所要查看的列数的内容
public class CSVParser extends ConsoleProgram {

public void run(){
ArrayList result = new ArrayList();
String filename = openfile("Enter the filename :");
int columnIndex = readInt("Enter the column index :");
result = extractColumn(filename,columnIndex);
println(result);
}
//读取文件,若文件不存在则提示,重新键入文件名
private String openfile(String prompt){
BufferedReader rd = null;
while(rd==null){
try{
String name = readLine(prompt);
rd = new BufferedReader(new FileReader(name));

}catch(IOException e){
println("bad file.The file doesn't exist.");
}
}
return getName();

}
//根据文件名和所要获取的列数输出该列所有内容
private ArrayList extractColumn(String filename, int columnIndex) {
ArrayList result = new ArrayList();
try {
BufferedReader rd = new BufferedReader(new FileReader(filename));
String line="";
while((line = rd.readLine()) != null){

String str = (fieldsIn(line).get(columnIndex-1));

result.add(str);

}rd.close();
}catch (IOException e){
e.printStackTrace();
}

return result;
}

//将line中的所有字段都整合到一个ArrayList上
private ArrayList fieldsIn(String line) {
ArrayList result = new ArrayList();
int num=0;
while(true){
num = line.indexOf(',');
if(num<=0){
result.add(line);break;
}
String str = line.substring(0, num);
line = line.substring(num+1);
result.add(str);

}

return result ;
}
}

因为你调用的result是你新创建的,并没有把那个有参数的result拿来使用

补充一下,你每次使用有参数的result都是先ArrayList result = new ArrayList();所以里面会没有原先的数据

public void run(){
ArrayList result = new ArrayList();
String filename = openfile("Enter the filename :");
int columnIndex = readInt("Enter the column index :");
result = extractColumn(filename,columnIndex);
println(result);
}
这个方法里调用extractColumn()方法返回list,直接用ArrayList result = extractColumn(filename,columnIndex);接收就好了,你干嘛还要new一个result?