java 读取csv 文件

package cn.howso.deeplan.son.feeder.util;


import java.io.BufferedReader;

import java.io.BufferedWriter;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileReader;

import java.io.FileWriter;

import java.io.IOException;

import java.util.Date;


import com.csvreader.CsvReader;

import com.csvreader.CsvWriter;


public class ReadandwriteCsv {

    public static void main(String[] args) throws IOException { 

    Date datestart =new Date();

    System.out.println(datestart+"******");

        String [] str = {"city_id","city_name","city_pid","level"};

        int [] needs = {1,2,3,4,5,6};

        String inString = "";

        String tmpString = "";

        File inFile = new File("/Users/shenrongrong/Desktop/plan_ott_data_20180424.csv"); // 读取的CSV文件

        File outFile = new File("/Users/shenrongrong/Desktop/plan_ott_data_20180424_srr.csv");//输出的CSV文

        try {

            BufferedReader reader = new BufferedReader(new FileReader(inFile));

            BufferedWriter writer = new BufferedWriter(new FileWriter(outFile));

            CsvReader creader = new CsvReader(reader, ',');

            CsvWriter cwriter = new CsvWriter(writer,',');

            while(creader.readRecord()){

                inString = creader.getRawRecord();//读取一行数据

                for(int i = 0;i < str.length;i++){

                inString = inString.replace(str[i], "," + str[i] + ",");

                tmpString=inString;

//                for(int j = 0;j < needs.length;j++){

//                tmpString+=inString.split(",")[needs[j]];

//                }

                }

                //第一个参数表示要写入的字符串数组,每一个元素占一个单元格,第二个参数为true时表示写完数据后自动换行

            cwriter.writeRecord(tmpString.split(","), true);

            //注意,此时再用cwriter.write(inString)方法写入数据将会看到只往第一个单元格写入了数据,“,”没起到调到下一个单元格的作用

            //如果用cwriter.write(String str)方法来写数据,则要用cwriter.endRecord()方法来实现换行

            //cwriter.endRecord();//换行

            cwriter.flush();//刷新数据

            }  

            creader.close();

            cwriter.close();

            Date datesend =new Date();

        System.out.println(datesend+"******");

        System.out.println("耗时:"+(datesend.getTime()-datestart.getTime())/60000);

        } catch (FileNotFoundException ex) {

            ex.printStackTrace();

        }

    }

}

猜你喜欢

转载自blog.csdn.net/u010251897/article/details/80109438