欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

生成csv文件的工具类(CSVWriter使用示例)

程序员文章站 2024-03-21 14:36:22
...

生成csv文件的工具类(CSVWriter使用示例)

 //按照省份poi类型保存csv
    private static final String GD_FILE_BASE = "D://amap//gaode//";
    //按照省份poi类型保存的图片路径csv
    private static final String GD_FILE_BASE_IMG = "D://amap//gaode//imgs//";
    
    /**
     * 按照省份poi类型生成csv文件
     * @author gaozhen
     * @time 2018年1月11日上午9:31:16
     * @param arr
     * @param city
     * @throws Exception
     */
    public static void writeAmapCSV(JSONArray arr, String area,String poiTypeName,String poiType) throws Exception {
    	
    	//高德poi数据命名
        File infoFile = new File(GD_FILE_BASE + "amap_" + area +"_"+poiTypeName+ ".csv");
        File imgFile = new File(GD_FILE_BASE_IMG + "amap_img_" + area +"_"+poiTypeName+ ".csv");
        
        boolean infoFlag = infoFile.exists();
        boolean imgFlag = imgFile.exists();

        // 创建CSV写对象 例如:CsvWriter(文件路径,分隔符,编码格式);
        CSVWriter infoWriter = new CSVWriter(new FileWriter(infoFile));
        // 创建CSV写对象 例如:CsvWriter(文件路径,分隔符,编码格式);
        CSVWriter imgWriter = new CSVWriter(new FileWriter(imgFile));
        
        // 写表头
        if (!infoFlag) {
            String[] InfoHeaders = { "POI_NAME", "X_AXIS", "Y_AXIS", "POI_STATE", "POI_DESC", "POI_ADDRESS",
                    "THUMBNAIL", "AREA", "CITY", "POI_TYPE", "SALES_VOLUME", "POI_LABELS", "POI_ATTRIBUTES", "ASCRIPTION","TN_POIID"};
            infoWriter.writeNext(InfoHeaders);
        }
        if (!imgFlag) {
            String[] imgHeaders = { "IMG_NAME", "URL"};
            imgWriter.writeNext(imgHeaders);
        }
        
		for (int i=0;i<arr.size();i++) {
			JSONObject poiJson = arr.getJSONObject(i);
			
			//处理坐标
			String location = poiJson.getString("location");
			String[] locations = location.split(",");
			
			//处理空地址
			String address=poiJson.getString("address");
			if("[]".equals(address)){
				address="";
			}
			
			//处理图片
			JSONArray photos = poiJson.getJSONArray("photos");
			String thumbnail="";
			if(photos.size()>0){
				thumbnail=photos.getJSONObject(0).getString("url");
				
				//写入图片的csv
				for(int j=0;j<photos.size();j++){
					String[] imgContent={
							poiJson.getString("id"),
							photos.getJSONObject(j).getString("url")
					};
					imgWriter.writeNext(imgContent);
				};
			}
			
			//拼接内容
			String[] infoContent={
					 poiJson.getString("name"),  //POI_NAME
					 locations[0],               //X_AXIS
					 locations[1],               //Y_AXIS
					 "1",                        //POI_STATE
					 "",                         //POI_DESC
					 address,                    //POI_ADDRESS
					 thumbnail,                  //THUMBNAIL
					 poiJson.getString("pname"), //AREA
					 poiJson.getString("cityname"),//CITY
					 poiType,                     //POI_TYPE
					 "",                          //SALES_VOLUME
					 poiJson.getString("type"),  //POI_LABELS
					 "",                         //POI_ATTRIBUTES
					 "4",                        //ASCRIPTION
					 poiJson.getString("id")    //TN_POIID(高德的poiId)
			 };
			 infoWriter.writeNext(infoContent);
		}
        infoWriter.close();
        imgWriter.close();
    }