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;  
        }
    }
    
    
    
     
  • 相关阅读:
    The Future of Middleware and the BizTalk Roadmap
    FW: How to spawn a process that runs under the context of the impersonated user in Microsoft ASP.NET pages
    Strips illegal Xml characters
    luogu P2280 激光炸弹(二维前缀和)
    luogu P2704 炮兵阵地(经典状态压缩DP)
    SP1716 GSS3 Can you answer these queries III (线段树维护最大连续子段和)
    二分图判定、匹配问题
    C++语法综合 | 基于char*设计一个字符串类MyString
    luogu P1044 火车进出栈问题(Catalan数)
    C++设计模式 | 三种设计模式基础
  • 原文地址:https://www.cnblogs.com/zqzdong/p/4840828.html
Copyright © 2011-2022 走看看