码迷,mamicode.com
首页 > 编程语言 > 详细

Java读取CSV数据并写入txt文件

时间:2019-12-06 19:41:36      阅读:103      评论:0      收藏:0      [点我收藏+]

标签:history   nts   adc   contains   内容   col   写入   copyright   trace   

读取CSV数据并写入txt文件

package com.vfsd;

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;

import com.csvreader.CsvReader;

/*******************************************************************************************************
 * Copyright: vc1.0 2018. All rights reserved.                    <br>
 * The whole package including this class is licensed under        <br>
 *                                                                 <br>
 * @ClassName:                                        <br>
 * @Directory:                                        <br>
 * @author:                                               <br>
 * @version:         v1.0.0                                        <br>
 * @date:                                                <br>
 * @Description:                                                 <br>
 *       1、                                        <br>
 *       2、                                        <br>
 * @Others: 暂无说明                                                <br>
 * @Modification History:                                        <br>
 *       1、                                            <br>
 *       Date:                              <br>
 *       Author:                                        <br>
 *       Modification:                                     <br>
 *                                                                 <br>
 *       2、                                                        <br>
 *       Date:                                                  <br>
 *       Author:                                                   <br>
 *       Modification:                                          <br>
 *       
 * @Statement: If you are using the package or parts of it in any commercial way, a commercial license is required. <br>
 *   Visit <a href=‘http://www.bim-times.com‘>http://www.bim-times.com</a> for more information.<br>
 * 
*********************************************************************************************************/
public class ReadCSVAndWriteTxt {
    
    public static void main(String[] args) throws IOException {
        String csvFilePath="D:\\BIM\\2019042702\\2019042701.csv";
        String xFileName="D:\\BIM\\2019042702\\X_train.txt";
        String yFileName="D:\\BIM\\2019042702\\y_train.txt";
        
        //readCSVAndWrite(csvFilePAth);
        //readCSVAndWriteData(csvFilePath,xFileName,yFileName);
        
        //String h1[] = {"A","B","C","D","E","F"};
        String h1[] = {"A","B","C","D","K","P"};
        //String h1[] = {"actionid","actionname","1","\‘test\‘","\‘test2\‘","\‘test3\‘"};
        readCSVAndWrite1("D:\\BIM\\ifc1.csv",h1);
    }
    
    /**
     * 读取CSV文件内容
     * @param csvFileName
     * @throws IOException
     */
    public static void readCSVAndWrite(String csvFileName) throws IOException{
        try {
            // 创建CSV读对象
            CsvReader csvReader = new CsvReader(csvFileName);
            // 读表头
            csvReader.readHeaders();
            while (csvReader.readRecord()){
                // 读一整行
                //System.out.println(csvReader.getRawRecord());
                // 读这行的某一列
                System.out.println(csvReader.get("A")+"\t"+csvReader.get("B")+"\t"+csvReader.get("C"));
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    public static void readCSVAndWrite1(String csvFileName,String h1[]) throws IOException{
        try {
            // 创建CSV读对象
            CsvReader csvReader = new CsvReader(csvFileName);
            // 读表头
            csvReader.readHeaders();
            while (csvReader.readRecord()){
                // 读一整行
                //System.out.println(csvReader.getRawRecord());
                // 读这行的某一列
                if(csvReader.get(h1[0]).contains("actionid")) {
                    //System.out.println(csvReader.get(h1[0])+"\t"+csvReader.get(h1[1])+"\t"+csvReader.get(h1[2])+"\t"+csvReader.get(h1[3])+"\t"+csvReader.get(h1[4])+"\t"+csvReader.get(h1[5]));
                }
                
                if(csvReader.get(h1[1]).endsWith("f") && !csvReader.get(h1[2]).equals("")) {
                    System.out.println(csvReader.get(h1[0])+"\t"+csvReader.get(h1[1])+"\t"+csvReader.get(h1[2])+"\t"+csvReader.get(h1[3])+"\t"+csvReader.get(h1[4])+"\t"+csvReader.get(h1[5]));
                }
                
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    
    /**
     * 读取CSV文件内容
     * @param csvFileName
     * @throws IOException
     */
    public static void readCSVAndWriteData(String csvFileName,String xFileName,String yFileName) throws IOException{
        File xFile = new File(xFileName);
        File yFile = new File(yFileName);
        
        xFile.createNewFile();
        yFile.createNewFile();
        
        FileWriter xFileWriter = new FileWriter(xFile);
        FileWriter yFileWriter = new FileWriter(yFile);
        
        BufferedWriter xBufferWriter = new BufferedWriter(xFileWriter);
        BufferedWriter yBufferWriter = new BufferedWriter(yFileWriter);
        
        String lineA = "A1";
        String lineB = "B1";
        String lineC = "C";
        
        try {
            // 创建CSV读对象
            CsvReader csvReader = new CsvReader(csvFileName);

            // 读表头
            csvReader.readHeaders();
            while (csvReader.readRecord()){
                // 读一整行
                //System.out.println(csvReader.getRawRecord());
                // 读这行的某一列
                System.out.println(csvReader.get(lineA)+"\t"+csvReader.get(lineB)+"\t"+csvReader.get(lineC));
                //xBufferWriter.write(csvReader.get(lineA)+"\t"+csvReader.get(lineB)+"\n");
                if(csvReader.get(lineC).equals("1")) {
                    yBufferWriter.write("1"+"\n");
                    xBufferWriter.write(csvReader.get(lineA)+"\t"+csvReader.get(lineB)+"\n");
                }else if(csvReader.get(lineC).equals("27")) {
                    yBufferWriter.write("2"+"\n");
                    xBufferWriter.write(csvReader.get(lineA)+"\t"+csvReader.get(lineB)+"\n");
                }else if(csvReader.get(lineC).equals("33")) {
                    yBufferWriter.write("3"+"\n");
                    xBufferWriter.write(csvReader.get(lineA)+"\t"+csvReader.get(lineB)+"\n");
                }
            }
            
            xBufferWriter.flush();
            yBufferWriter.flush();

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

 

Java读取CSV数据并写入txt文件

标签:history   nts   adc   contains   内容   col   写入   copyright   trace   

原文地址:https://www.cnblogs.com/herd/p/11996857.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!