Java读取CSV文件内容到数据库

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);
				}
			}
			

猜你喜欢

转载自blog.csdn.net/weixin_42245930/article/details/83830794