csv文件其实就是格式化的txt文件

原创 2015年07月09日 08:10:23

csv文件其实就是格式化的txt文件,所以操作和txt文件差不多,直接上代码了:

	<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.5</version>
		</dependency>
		 
		<dependency>
			<groupId>org.ostermiller</groupId>
			<artifactId>utils</artifactId>
			<version>1.07.00</version>
		</dependency>

 

import java.io.File;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Date;

import org.apache.commons.lang.time.DateFormatUtils;

import com.Ostermiller.util.CSVPrint;
import com.Ostermiller.util.CSVPrinter;

/**
 * 
 * @author alex.wang
 * csv文件写入
 *
 */
public class CsvFilePrinter{   
  
    private CSVPrint csvPrint;

    /**
     * 
     * @param fileName 文件路径
     * @param append 是否支持追加
     * @throws IOException
     */
    public CsvFilePrinter(String fileName,boolean append) throws IOException { 
    	File file = new File(fileName);
    	if(!file.exists()){
    		csvPrint = new CSVPrinter(new FileWriter(fileName,append));
    		init();
    	}else{
    		csvPrint = new CSVPrinter(new FileWriter(fileName,append));
    		if(!append){
                init();
    		}
    	}
    	 
    }
    
    public void init() throws IOException{
    	write(new String[]{"id","mac","val","date"});
    }
   
    public void write(String[] values) throws IOException {  
    	csvPrint.writeln(values);
    }   
   
    public static void main(String[] args) throws Exception {   
    	String csvFile = "demo".concat("-").concat(DateFormatUtils.format(new Date(), "yyyyMMdd")).concat(".csv");
        CsvFilePrinter print = new CsvFilePrinter(csvFile,false);
        
        for(int i=0;i<10;i++){
        	print.write(new String[]{"50001"+i,"C914"+i,Integer.toString(-80+i),DateFormatUtils.format(new Date(), "yyyy-MM-dd")});
        }
    
    }   
  
}

 

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;

import com.Ostermiller.util.ExcelCSVParser;
import com.Ostermiller.util.LabeledCSVParser;

/**
 * 
 * @author alex.wang
 * csv文件解析器
 *
 */
public class CsvFileParser{   
  
    private LabeledCSVParser csvParser;//csv解析器,对于第一行的表头信息,自动加载为索引关键字   
  
    private int currLineNum = -1;//文件所读到行数   
  
    private String[] currLine = null;//用来存放当前行的数据  
     
  
    /* 
     *  构造函数, 
     *  Param: in InputStream 要解析的信息流 
     *  throws IOException 
     */    
  
    public CsvFileParser(InputStream in) throws IOException {  
            csvParser = new LabeledCSVParser(new ExcelCSVParser(in));  
            currLineNum = csvParser.getLastLineNumber();  
    }
    
    public CsvFileParser(String fileName) throws IOException { 
    	InputStream in = new FileInputStream(fileName);
	    csvParser = new LabeledCSVParser(new ExcelCSVParser(in));  
        currLineNum = csvParser.getLastLineNumber(); 
    }
    
    /* 
     * 检查是否还有数据 
     * 
     * return ture 还有一行数据,false 没有数据 
     */  
    public boolean hasMore() throws IOException {  
        currLine = csvParser.getLine();  
        currLineNum = csvParser.getLastLineNumber();  
        if (null == currLine)  
            return false;  
        return true;  
    }   
  
    /* 
     * 返回当前行数据,关键字所指向的数据 
     * param:String filedName 该行的表头 
     * return:String 返回当前行数据,关键字所指向的数据 
     */  
    public String getByFieldName(String fieldName) {  
        return csvParser.getValueByLabel(fieldName);  
    }   
  
    /* 
     * 关闭解析器 
     * 
     *  
     */  
    public void close() throws IOException {  
        csvParser.close();   
    }   
  
    /* 
     * 读取当前行数据 
     * 
     *  return String[] 读取当前行数据 
     */  
    public String[] readLine() throws IOException {  
        currLine = csvParser.getLine();   
        currLineNum = csvParser.getLastLineNumber();   
        return currLine;  
    }   
  
   public int getCurrLineNum(){   
         return currLineNum;   
   }    
  
    public static void main(String[] args) throws Exception {   
  
         //创建解析信息流  
        InputStream in=new FileInputStream(new File("demo.csv"));   
  
       //实例解析器CsvFileParser   
        CsvFileParser parser=new CsvFileParser(in);   
  
       //读取数据  
        while(parser.hasMore()){  
             
            System.out.print(parser.getByFieldName("time")+" ");//time 系表头数据  
            System.out.print(parser.getByFieldName("total")+" ");  
             
        }  
         
        parser.close();  
          
  
    }   
  
}

 

Java解析CSV文件

1、CSV文件是什么 csv(Comma Separate Values)文件即逗号分隔符文件,它是一种文本文件,可以直接以文本打开,以逗号分隔。windows默认用excel打开。...
  • zry112233
  • zry112233
  • 2016年05月17日 15:26
  • 2758

把CSV文件转换成TXT文件

csv转换成txt文件,这个代码的功能是把csv文件中的一些行取出来保存到txt文件中。import java.io.BufferedReader; import java.io.FileNotFou...
  • CSDN_LYY
  • CSDN_LYY
  • 2017年12月20日 21:42
  • 316

提取txt或csv文件的一列

使用命令:awk -F"," '{print $1}' a.txt awk -F"," '{print $1}' a.csv可以提取文件的第一列。其中每一列是以“,”为分界符的。 以上就是提取txt...
  • CSDN_LYY
  • CSDN_LYY
  • 2017年04月14日 22:04
  • 609

java中HashSet详解(其实是用HashMap实现)

java中HashSet详解 博客分类: JavaSE Java  HashSet 的实现  对于 HashSet 而言,它是基于 HashMap 实现的,HashSet...
  • u014350758
  • u014350758
  • 2014年10月08日 11:13
  • 216

django里如何做生成文件txt,csv,pdf

在django里,定义了url之后,只要在view里添加如下代码匹配就可以了。 def download_file(request):        from django.h...
  • bravezhe
  • bravezhe
  • 2013年01月14日 17:06
  • 3331

bufferevent简介

分析: libevent的bufferevent在event的基础上自己维护了一个buffer,这样的话,就不需要再自己管理一个buffer了,上一篇博客是自己维护一个buffer,维护过程复杂,且过...
  • ljlstart
  • ljlstart
  • 2016年05月10日 19:05
  • 341

python:txt文件转换为csv文件

应用python将txt文本文件转换为csv文件。
  • kanon122500000
  • kanon122500000
  • 2017年02月24日 16:49
  • 2088

Linux Shell 逐行读取文件 ( txt , sh , csv等)

今天写了一个简单的 Linux Shell 逐行读取文件(txt,sh,csv....)的程序,记录一下,有需要的朋友可以参考。 #!/bin/bash # Only 1 parameter ! ...
  • yangguangqizhi
  • yangguangqizhi
  • 2015年12月27日 16:30
  • 6067

pandas读取csv文件

data目录下新建data2.csv。 其中数据: 测试1,A 测试2,A 测试3 测试4 测试5 测试6 测试7 测试8 代码: import pandas as pd ...
  • macb007
  • macb007
  • 2017年09月04日 19:57
  • 243

Python——csv txt文件读写

import csvtxt_file = "train.txt" csv_file = "train.csv"in_txt = csv.reader(open(txt_file, "r"), deli...
  • zm714981790
  • zm714981790
  • 2016年12月02日 17:30
  • 1460
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:csv文件其实就是格式化的txt文件
举报原因:
原因补充:

(最多只允许输入30个字)