`
vefan
  • 浏览: 84046 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Java读取csv文件

阅读更多
package com.vefan.csv;
import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * @author Alpha
 *  JAVA 操作 excel 文档中的 .csv文件格式
 */
public class CsvReader {

  private String filename = null;   
    
  private BufferedReader bufferedreader = null;   
    
  private List list =new ArrayList();   
    
  public CsvReader() {   
    
  }
  
  public static void main(String[] args) throws IOException {
      CsvUtil test = new CsvUtil();
      test.testRun("E:/workspace/JavaApp/csv/user.csv");
  } 
    
  public CsvReader(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().contains(",")) { 
              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 {
      CsvUtil cu = new CsvUtil(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();
  }

}

分享到:
评论
1 楼 zhanghe086 2010-11-11  
关于汉字乱码的问题搂住没提到呀

相关推荐

Global site tag (gtag.js) - Google Analytics