Java读取csv资料
Java读取csv文件
在http://hjxia.iteye.com上看到这篇文章,试了试,还好用,记录了下来
首先在http://ostermiller.org/utils/download.html 上下载com.Ostermiller.util cvs的jar包.
有了这个jar包就可以写个工具类,专门控制csv文件的读取操作.
具体代码如下:
在http://hjxia.iteye.com上看到这篇文章,试了试,还好用,记录了下来
首先在http://ostermiller.org/utils/download.html 上下载com.Ostermiller.util cvs的jar包.
有了这个jar包就可以写个工具类,专门控制csv文件的读取操作.
具体代码如下:
package com.spr.csv; import java.io.IOException; import java.io.InputStream; import com.Ostermiller.util.ExcelCSVParser; import com.Ostermiller.util.LabeledCSVParser; public class CsvFileParser{ private LabeledCSVParser csvParser;//csvParser private int currLineNum = -1;//The current line number for reading. private String[] currLine = null;//The data of current line. /* * Param: in InputStream * throws IOException */ public CsvFileParser(InputStream in) throws IOException { csvParser = new LabeledCSVParser(new ExcelCSVParser(in)); currLineNum = csvParser.getLastLineNumber(); } /* * Get the titles of csv file. * * return String[] */ public String[] getTitles() throws IOException { return csvParser.getLabels(); } /* * Checkout whether it has more data. * * @return ture: has data,false nodata. */ public boolean hasMore() throws IOException { currLine = csvParser.getLine(); currLineNum = csvParser.getLastLineNumber(); if (null == currLine) return false; return true; } /* * Get the data of filed by field name. * param:String filedName * * @return:String */ public String getByFieldName(String fieldName) { return csvParser.getValueByLabel(fieldName); } /* * Close the parser. * * */ public void close() throws IOException { csvParser.close(); } /* * Read the current line.Return the data of current line. * * @return String[] */ public String[] readLine() throws IOException { currLine = csvParser.getLine(); currLineNum = csvParser.getLastLineNumber(); return currLine; } /* * Get current line number. * * @return int */ public int getCurrLineNum(){ return currLineNum; } /* * Get the data of the current line. * * @return String[] */ public String[] getCurrLine() { return currLine; } }