代码java
须要 :javacsv-2.1.jarcode
package readCSV; import java.io.IOException; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.List; import com.csvreader.*; public class Read { public static void main(String[] args) { read(); } public static void read(){ String filePath = "C:/Users/donald/Desktop/AAA.csv"; try { // 建立CSV读对象 CsvReader csvReader = new CsvReader(filePath); // 读表头 csvReader.readHeaders(); System.out.println(csvReader.getHeaders()); System.out.println(csvReader.getRawRecord()); System.out.println(csvReader.getDelimiter() ); String[]headers=csvReader.getHeaders(); int a = 1;//开始以行数 List<String[]> contents = new ArrayList<>(); // 内容队列 int b = 20170001;//文件名结尾部分 String filename ; // 文件名 while (csvReader.readRecord()){ if(a % 40000!=0){ // 读一整行 // System.out.println(csvReader.getRawRecord()); // System.out.println(csvReader.getValues()[0]); // 读这行的某一列 // System.out.println(csvReader.get("Vendor")); contents.add(csvReader.getValues()); a++; }else{ contents.add(csvReader.getValues()); a++; filename ="bbb"+b+".csv"; b++; write(filename,headers,contents); contents.clear(); } } // 最后再执行一次 filename ="STKFLW-tocml-"+b+".csv"; b++; write(filename,headers,contents); System.out.println("最后的文件名:"+filename); System.out.println("最后一行的line_no:"+a); contents.clear(); } catch (IOException e) { e.printStackTrace(); } } public static void write(String filename ,String[] headers,List<String[]> contents){ String filePath = "C:/Users/donald/Desktop/split/"+filename; try { // 建立CSV写对象 CsvWriter csvWriter = new CsvWriter(filePath,',', Charset.forName("utf-8")); //设置内容都用""包起来 csvWriter.setForceQualifier(true); csvWriter.setTextQualifier('"'); csvWriter.setUseTextQualifier(false); //CsvWriter csvWriter = new CsvWriter(filePath); // 写表头 // String[] headers = {"编号","姓名","年龄"}; // String[] content = {"12365","张山","34"}; csvWriter.writeRecord(headers); //遍历List里面的内容,写在文本里面 for (String[] content : contents) { csvWriter.writeRecord(content); } csvWriter.close(); } catch (IOException e) { e.printStackTrace(); } } }
以前因为循环的if 条件写错了,建立了大量空文件csv 文件,一瞬间就几万个文件夹,容易把电脑搞死对象