zoukankan      html  css  js  c++  java
  • JAVA--读取csv文件并导数

    
    
    package com.datahander;
    
    import java.io.File;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    import java.util.List;
    
    import com.csvreader.CsvReader;
    import com.util.Manager;
    
    public class ReadCsv {
        private static boolean flag = false;;
        /**
         * csv文件导数
         * @param file
         */
        public static void  cvsManager(File file){  
            if(file.exists() || file.length() > 0){
                flag = isPics(file.getName());
                if(!flag){
                    System.out.println("文件格式错误");
                }else{
                    try {
                        List<String[]> csvList = new ArrayList<String[]>(); //用来保存数据  
                        String csvFilePath = file.getPath();  
                        CsvReader reader = null;
                        try{
                            reader = new CsvReader(csvFilePath, ',', Charset.forName("UTF-8"));
                            //reader.readHeaders();          // 跳过表头   如果需要表头的话,不要写这句。
                            int lineSum = 0;
                            int count = 1000;
                            while(reader.readRecord()){    //逐行读入除表头的数据
                                lineSum ++;
                                String s[]=reader.getValues();
                                for(int i=0;i<s.length;i++){
                                    s[i]=s[i].replaceAll("'","");
                                    s[i]=s[i].replaceAll("\\","/");
                                }
                                System.out.println(s);
                                csvList.add(s);  
                                if(lineSum % count == 0){
                                    importDataToMySql(csvList);   //调用导数的方法
                                    System.out.println("已插入1000条");
                                    csvList.clear();
                                }
                            }
                            importDataToMySql(csvList);
                            csvList.clear();
                            System.err.println("插入完成!");
                        }finally{
                            reader.close();          
                        }    
                    }catch(Exception ex){  
                        System.out.println(ex);  
                    }
                }
            }else{
                System.err.println("文件不存在或文件为空!");
            }
        }
        /**
         * 将集合导入到数据库中去
         * @param csvList
         */
        public static void importDataToMySql(List<String[]> csvList){
            String va = "";
            String table="cvsdatas";
            String val="(company_name,cate_name,province,city,area,address,contact_people,contact_phone,telephone,website,email,latitude,longitude,product,description,logo,company_id)";
            for(int row=0;row<csvList.size();row++){  
                va+="('" + csvList.get(row)[0]+"','"+csvList.get(row)[1]+"','"+csvList.get(row)[2]+"','"+csvList.get(row)[3]+"','"+csvList.get(row)[4]+"','"+csvList.get(row)[5]+"','"+csvList.get(row)[6]+"','"+csvList.get(row)[7]+"','"+csvList.get(row)[8]+"','"+csvList.get(row)[9]+"','"+csvList.get(row)[10]+"','"+csvList.get(row)[11]+"','"+csvList.get(row)[12]+"','"+csvList.get(row)[13]+"','"+csvList.get(row)[14]+"','"+csvList.get(row)[15]+"','"+csvList.get(row)[16]+ "'),";
            }
            va=va.substring(0, va.length()-1);
            Manager.insertData(table,va,val);  
        }
        public static boolean isPics(String filename)  
        {  
            boolean flag = false;    
            if(filename.endsWith(".csv"))  
                flag = true;      
            return flag;  
        }
    }
    
    
    
     
  • 相关阅读:
    Delphi程序流程三(2)(while)PS:最简单的任务管理器( 组件LISTVIEW的用法 增加LISTVIEW的读取 删除)
    Delphi 编译错误信息表(转载自万一博客)
    Delphi程序流程三(1)(while)PS:顺便写了个最简单的任务管理器(包含申明API 自己申明参数为结构型API 组件LISTVIEW的用法)
    Delphi程序流程二(for)
    内核编程 warning C4273: 'PsGetProcessId' : inconsistent dll linkage
    简单的SEH处理
    【转】VC6.0各个文件说明
    【转】两篇关于__security_cookie的介绍
    完美解决 error C2220: warning treated as error
    【转】IDA 与VC 加载符号表
  • 原文地址:https://www.cnblogs.com/zqzdong/p/4840828.html
Copyright © 2011-2022 走看看