java处理csv文件

摘要

java处理csv文件,csv是一种类似于txt的文本数据,存储方便,往往直接作为数据源。

java操作csv文件相关代码

package cn.ccb.odsbsx.common.util;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
/**
 *
 *  JAVA 操作 excel 文档中的 .csv文件格式
 */
public class CsvOperateUtil {
  private String filename = null;  
       
  private BufferedReader bufferedreader = null;  
       
  private List list =new ArrayList();  
       
  public CsvOperateUtil() {  
       
  }
     
  public static void main(String[] args) throws IOException {
      CsvOperateUtil test = new CsvOperateUtil();
      test.testRun("C:/file2/B_F_DEP_SAE_CB_ACCT_TMP.csv");
  }
       
  public CsvOperateUtil(String filename) throws IOException{  
      this.filename = filename;
      bufferedreader = new BufferedReader(new FileReader(filename));
      String stemp;
      while((stemp = bufferedreader.readLine()) != null){
          list.add(stemp);
      }
  }
     
  public List getList() throws IOException {
      return list;
  }
     
  public int getRowNum(){
      return list.size();
  }
     
  public int getColNum(){
      if(!list.toString().equals("[]")) {
          if(list.get(0).toString().indexOf(",")>0) {
              return list.get(0).toString().split(",").length;
          }else if(list.get(0).toString().trim().length() != 0) {
              return 1;
          }else{
              return 0;
          }
      }else{
          return 0;
      }
  }
     
  public String getRow(int index) {
      if (this.list.size() != 0)
          return (String) list.get(index);
      else
          return null;
  }
     
  public String getCol(int index){
      if (this.getColNum() == 0){
          return null;
      }
      StringBuffer scol = new StringBuffer();
      String temp = null;
      int colnum = this.getColNum();
      if (colnum > 1){
          for (Iterator it = list.iterator(); it.hasNext();) {
              temp = it.next().toString();
              scol = scol.append(temp.split(",")[index] + ",");
          }
      }else{
              for (Iterator it = list.iterator(); it.hasNext();) {
              temp = it.next().toString();
              scol = scol.append(temp + ",");
          }
      }
      String str=new String(scol.toString());
      str = str.substring(0, str.length() - 1);
      return str;
  }
     
  public String getString(int row, int col) {
      String temp = null;
      int colnum = this.getColNum();
      if(colnum > 1){
          temp = list.get(row).toString().split(",")[col];
      }else if(colnum == 1) {
          temp = list.get(row).toString();
      }else{
          temp = null;
      }
      return temp;
  }
     
  public void CsvClose() throws IOException {
      this.bufferedreader.close();
  }
     
  public void testRun(String filename) throws IOException {
      CsvOperateUtil cu = new CsvOperateUtil(filename);
         
      for(int i=0;i<cu.getRowNum();i++){
             
          String ID = cu.getString(i,0);//得到第i行.第一列的数据.
          String CODE = cu.getString(i,1);;//得到第i行.第二列的数据.
          String NAME = cu.getString(i,2);;
          String TEL = cu.getString(i,3);;
             
          System.out.println("===ID:"+ID);
          System.out.println("===CODE:"+CODE);
          System.out.println("===NAME:"+NAME);
          System.out.println("===TEL:"+TEL);
          System.out.println(" ");
      }
         
      cu.CsvClose();
  }
}


IT家园
IT家园

网友最新评论 (0)