Прежде всего, вам даже не нужен итератор, благодаря for(File file : full_files)
с Java 7.
Это рабочая версия:
public List<String[]> readCSV(File dir) throws IOException {
File[] files = dir.listFiles();
List<String[]> allMatchingFiles = new ArrayList<>();
if (files == null || files.length < 1) {
return allMatchingFiles;
}
File firstFile = files[0];
// Creating a file to point to the "Full" directory
File fullDir = new File(firstFile.getParent() + "/Full/");
File[] fullDirFiles = fullDir.listFiles();
// Iterating through the files in "Full"
if (fullDirFiles != null) {
for (File file : fullDirFiles) {
if (GetFileExtension.get(file).equals(".csv")) {
allMatchingFiles.addAll(CSVHandler.readCSV(file));
}
}
}
// Checking if the file outside "Full" is a CSV
if (GetFileExtension.get(firstFile).equals(".csv")) {
allMatchingFiles.addAll(CSVHandler.readCSV(firstFile));
}
return allMatchingFiles;
}
Как вы могли заметить, я написал это немного более осторожно, например, проверив наличие нуля.
Также я использовал List <> вместо ArrayList <>.
Кроме того, в Java для имен переменных обычно используется lowerCamelCase.
@ Joakim Danielson: Хорошо, изменил код соответствующим образом:)