我有两个类fiels,一个名为CSVUtils.java,另一个名为FilesCollector.java。 CSVUtils.java包含一个由FilesCollector.java调用的名为matchValues(String csvFile,int columnNumber,String matchValue)的静态方法。基本上它是这样Java:for循环只能执行一次
Public Class CSVUtils {
private static String FILENAME;
private static int COLUMN;
private static String MATCHVALUE;
public static void matchValues(String csvFile, int columnNumber, String matchValue) {
try {
//read csvFile, match values, and write to outPut file. details omitted.
} finally {
csvReader.close();
csvWriter.close();
System.out.println("success");
System.exit(0);
}
}
}
在FilesCollector.java,我使用Apache Commons-IO抓取的CSV文件的列表,并将其存储在数组中的文件[] csvFiles。然后我用下面的for循环来处理个人csv文件
for (File e : csvFiles) {
CSVUtils.matchValues(e.getAbsolutePath(), 9, "Yes");
}
但是,由于某种原因,我不知道,这上面的for循环只能处理文件中的[]数组csvFiles第一个CSV文件。你们可以帮我解决我代码中可能出错的地方吗?非常感谢!
编辑:在注释掉这行后System.exit(0);我的代码正在工作。为什么这行代码使该方法无法正常工作?
真的是'csvFiles.length> 1'吗? –
是的,在FilesCollector.java中,我测试了csvFiles数组的大小。 – TonyGW
System.exit(0)关闭程序。如果程序关闭,它不能继续for循环。 – hankd