Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2084481
  • 博文数量: 414
  • 博客积分: 10312
  • 博客等级: 上将
  • 技术积分: 4921
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-31 01:49
文章分类

全部博文(414)

文章存档

2011年(1)

2010年(29)

2009年(82)

2008年(301)

2007年(1)

分类: Java

2008-05-17 22:31:22

首先到该 地址下载com.Ostermiller.util cvs的jar包。有分别适合jdk 1.4 和jdk 1.5的两个jar包。
 

我用的系适合jdk 1.4的Ostermiller Utils version 1.05.00 for Java 1.4 的jar包。

public class CsvFileParser

    
private LabeledCSVParser csvParser;//csv解析器,对于第一行的表头信息,自动加载为索引关键字 

    
private int currLineNum = -1;//文件所读到行数 

    
private String[] currLine = null;//用来存放当前行的数据
   

    
/*
     *  构造函数,
     *  Param: in InputStream 要解析的信息流
     *  throws IOException
     
*/
  

    
protected CsvFileParser(InputStream in) throws IOException {
        
            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 getCurrLineNum()

         
return currLineNum; 

  }
  

    
public static void main(String[] args) throws Exception 

         
//创建解析信息流
        InputStream in=new FileInputStream(new File("C:PerfLogsdata_000002.csv")); 

       
//实例解析器CsvFileParser 
        CsvFileParser parser=new CsvFileParser(in); 

       
//读取数据
        while(parser.hasMore()){
           
            System.out.print(parser.getByFieldName(
"time")+" ");//time 系表头数据
            System.out.print(parser.getByFieldName("total")+" ");
            System.out.print(parser.getByFieldName(
"dpc time")+" ");
            System.out.print(parser.getByFieldName(
"Interrupt Time")+" ");
            System.out.print(parser.getByFieldName(
"Processor Time")+"");
           
        }

       
        parser.close();
        

    }
 

}

阅读(1139) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~