问题是,您正在重新编写数组,而不是向其中添加数据。
while ((line = br.readLine()) != null) {
database = line.split(cvsSplitBy);
一般逻辑是错误的,您需要将一个文件中的单元格与另一个文件中的单元格进行比较。
public class CSVReaderw {
public static void main(String[] args) {
String adDotCsv = "/Users/Documents/AD.csv";
String databaseDotCsv = "/Users/Desktop/database.csv";
String line = "";
String cvsSplitBy = ",";
BufferedReader br = null;
List<String> databaseList = new ArrayList<>();
List<String[]> adList = new ArrayList<>();
try {
br = new BufferedReader(new FileReader(databaseDotCsv));
while ((line = br.readLine()) != null) {
databaseList.addAll(Arrays.asList(line.split(cvsSplitBy)));
}
br = new BufferedReader(new FileReader(adDotCsv));
line = "";
while ((line = br.readLine()) != null) {
adList.add(line.split(cvsSplitBy));
}
List<String[]> commonList = new ArrayList<>();
String cellCInAdFile = null;
for (String[] rowInAdList : adList) {
cellCInAdFile = Arrays.toString(rowInAdList).split(",")[2].trim();
for (String cellAinDatabaseFile : databaseList) {
if (cellCInAdFile.equals(cellAinDatabaseFile.trim())) {
commonList.add(rowInAdList);
}
}
}
for (String[] rowInCommonList : commonList) {
System.out.println(Arrays.asList(rowInCommonList));
}
} catch (IOException ex) {
ex.printStackTrace();
}
}
}