CSV文件主要是以逗号分割数据的,代码如下:
File csv = new File("E:\\GeoIP2-City-Locations-en.csv"); // CSV文件路径
BufferedReader br = null;
br = new BufferedReader(new FileReader(csv));
String line = "";
String everyLine = "";
int num = 0;
ArrayList<Geoip2CityLlocations> list = new ArrayList<>();
while ((line = br.readLine()) != null) { // 读取到的内容给line变量
Geoip2CityLlocations gcl = new Geoip2CityLlocations();
everyLine = line;
if (everyLine.contains(", ")) {
everyLine = everyLine.replace(", ", ";");
}
String[] split = everyLine.split(",");
if (split[0].equals("geoname_id")) {
continue;
}
if (StringUtils.isNotBlank(split[0])) {
gcl.setGeonameID(Integer.valueOf(split[0]));
}
gcl.setLocaleCode(split[1]);
gcl.setContinentCode(split[2]);
gcl.setContinentName(split[3].replace("\"", "").replace("\"", ""));
gcl.setCountryIsoCode(split[4]);
gcl.setCountryName(split[5].replace("\"", "").replace("\"", ""));
gcl.setSubdivision1IsoCode(split[6]);
gcl.setSubdivision1Name(split[7].replace("\"", "").replace("\"", ""));
gcl.setSubdivision2IsoCode(split[8]);
gcl.setSubdivision2Name(split[9].replace("\"", "").replace("\"", ""));
gcl.setCityName(split[10].replace("\"", "").replace("\"", ""));
gcl.setMetroCode(split[11]);
gcl.setTimeZone(split[12]);
gcl.setIsInEuropeanUnion((split[13]));
list.add(gcl);
// testMapper.insert(gcl);
if (list.size() % 1000 == 0) {
geoip2CityLlocationsMapper.insertList(list);
num++;
list.clear();
}
if(num ==129 && list.size() == 20) {
geoip2CityLlocationsMapper.insertList(list);
}
}