zoukankan      html  css  js  c++  java
  • 写入CSV文件

    package com.csv;
    
    import java.io.BufferedReader;
    import java.io.BufferedWriter;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.InputStreamReader;
    import java.io.OutputStreamWriter;
    import java.util.List;
    
    import org.apache.commons.collections4.CollectionUtils;
    import org.apache.commons.compress.utils.Lists;
    import org.springframework.http.HttpHeaders;
    import org.springframework.http.MediaType;
    import org.springframework.web.client.RestTemplate;
    
    /**
     * 
     * @Description 写入CSV
     * @Author wangymd
     * @Date 2021-11-18 18:12:57
     */
    public class WriteCSVFile{
        
        private static RestTemplate restTemplate;
    
        public static void main(String[] args) {
            String fileName = "D:\\dev\\tempFile\\42_out2CSVFile.csv";//TODO
            
            //读取excel
            List<String> buildCsv = buildCsv();
            
            try {
                
                BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(fileName), "GBK"));
                if(CollectionUtils.isNotEmpty(buildCsv)) {
                    out2CSVFileTitle(out);//标题
                    for (String taskId : buildCsv) {
                        System.out.println(taskId);                    
                        ESImageDupCheckingVO esImageDupCheckingVO = invokeHttp(taskId);
                        //写入csv文件
                        out2CSVFile(out, esImageDupCheckingVO);
                    }
                }
                out.flush();
                out.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
            
        }
        
        private static void out2CSVFileTitle(BufferedWriter out) {
            try {
                out.write("contentId");
                out.write(",");
                out.write("contentId1");
                out.write(",");
                out.write("imgUrl1");
                out.write(",");
                out.write("score1");
                out.write(",");
                
                out.write("contentId2");
                out.write(",");
                out.write("imgUrl2");
                out.write(",");
                out.write("score2");
                out.write(",");
                
                out.write("contentId3");
                out.write(",");
                out.write("imgUrl3");
                out.write(",");
                out.write("score3");
                out.write(",");
                
                out.write("contentId4");
                out.write(",");
                out.write("imgUrl4");
                out.write(",");
                out.write("score4");
                out.write(",");
                
                out.write("contentId5");
                out.write(",");
                out.write("imgUrl5");
                out.write(",");
                out.write("score5");
                out.newLine();
                out.flush();
            } catch (Exception e) {
                e.printStackTrace();
            }
            
        }
        
        /**
         * 
         * @Description 写入esv文件
         * @Author wangymd
         * @Date 2021-11-22 10:46:06 
         * @param out
         * @param esImageDupCheckingVO
         *
         */
        private static void out2CSVFile(BufferedWriter out, ESImageDupCheckingVO esImageDupCheckingVO) {
            try {
                out.write(esImageDupCheckingVO.getTaskId());
                out.write(",");
                List<ImageDupCheckingVO> result = esImageDupCheckingVO.getResult();
                if(CollectionUtils.isNotEmpty(result)) {
                    for (ImageDupCheckingVO imageDupCheckingVO : result) {
                        if(imageDupCheckingVO != null) {
                            out.write(imageDupCheckingVO.getContentId());
                            out.write(",");
                            out.write(imageDupCheckingVO.getImgUrl());
                            out.write(",");
                            out.write(imageDupCheckingVO.getScore().toString());
                            out.write(",");
                        }
                    }
                }
                out.newLine();
                out.flush();
            } catch (Exception e) {
                e.printStackTrace();
            }
            
        }
    
        public static List<String> buildCsv() {
            String fileName = "D:\\dev\\tempFile\\42_20211119140531.csv";//TODO
            try {
                BufferedReader reader = new BufferedReader(new InputStreamReader(new FileInputStream(fileName),"GBK"));//换成你的文件名UTF-8
                reader.readLine();//第一行信息,为标题信息,不用,如果需要,注释掉
                String line = null;
                List<String> listJSONObject = Lists.newArrayList();
                while((line = reader.readLine()) != null){
                    String item[] = line.split(",");//CSV格式文件为逗号分隔符文件,这里根据逗号切分
                    String taskId = item[0];
                    listJSONObject.add(taskId);
                }
                return listJSONObject;
            }catch (Exception e) {
                e.printStackTrace();
            }
            
            return null;
        }
        
        /**
         * 
         * @Description 调用接口
         * @Author wangymd
         * @Date 2021-11-22 10:08:34 
         * @param taskId
         *
         */
        private static ESImageDupCheckingVO invokeHttp(String taskId) {
            restTemplate = new RestTemplate();
    
            HttpHeaders headersUpload = new HttpHeaders();
            headersUpload.setContentType(MediaType.APPLICATION_JSON);
            ESImageDupCheckingVO esImageDupCheckingVO = restTemplate.getForObject("http://data.com/es/queryByTaskId?taskId=" + taskId, ESImageDupCheckingVO.class);
    
            return esImageDupCheckingVO;
        }
    
    }
  • 相关阅读:
    搜狗输入法招聘数据挖掘、自然语言处理实习生
    python 备忘
    从零开始
    [转]随笔
    重学python
    关于tensorflow conv2d卷积备忘的一点理解
    python args kwargs 传递参数的区别
    something backup
    R语言命令汇总
    newwork setup
  • 原文地址:https://www.cnblogs.com/wangymd/p/15592218.html
Copyright © 2011-2022 走看看