java csv 逗号_csv即用逗号分割的文件 java

csv即用逗号分割的文件,本类实现的结果与Excel打开csv时基本相同

不同的是Excel对于回车也作为一个项目的内容,而在这里是以行为单位进行分割

aa,bb,cc,dd                   ----->|aa|bb|cc|dd    即分割为aa,bb,cc,dd四个元素

"aa","bb","cc","dd"        ----->|aa|bb|cc|dd

"a""a","a""""b"              -------->|a"a|a""b

"a"b","c""d"e",f""e         ------->|ab"|c"de"|f""e|

//Generated by fason

package fason;

import java.io.BufferedReader;

import java.io.FileReader;

import java.util.ArrayList;

import java.util.Iterator;

public class CSVParse {

public static ArrayList parseCSV(String lineStr){

ArrayList colList = new ArrayList();

StringBuffer sb = new StringBuffer(lineStr);

int colFlg = 0;

boolean comaFlg = false;

StringBuffer colBuf = new StringBuffer();

while(sb.length()>0){

char c = sb.charAt(0);

if(comaFlg == false){

if(c == ','){

colList.add(colBuf.toString());

colBuf = new StringBuffer();

}else if(c == '\"'){

colFlg = 1;

char tmpc = '\0';

if(sb.length()>1){

tmpc = sb.charAt(1);

}

if(tmpc == '\"'){

colFlg = 2;

sb.deleteCharAt(1);

}

comaFlg = true;

}else{

colFlg = 2;

colBuf.append(c);

comaFlg = true;

}

}else{

if(colFlg == 2 && c == ','){

colList.add(colBuf.toString());

colBuf = new StringBuffer();

comaFlg =false;

}else if(colFlg ==1 && c == '\"'){

char tmpc = '\0';

if(sb.length()>1){

tmpc = sb.charAt(1);

}

if(tmpc == '\"'){

colBuf.append(tmpc);

sb.deleteCharAt(1);

}else{

colFlg = 2;

}

}else{

colBuf.append(c);

}

}

sb.deleteCharAt(0);

}

colList.add(colBuf.toString());

return colList;

}

public static ArrayList parseCSVFile(String filePath){

BufferedReader br;

try{

br = new BufferedReader(new FileReader(filePath));

}catch(Exception e){

System.out.print(e.getMessage());

return null;

}

ArrayList lineList = new ArrayList();

try{

String s;

while((s = br.readLine()) != null){

lineList.add(s);

}

}catch(Exception e){

System.out.print(e.getMessage());

}

ArrayList lineColList = new ArrayList();

Iterator ite = lineList.iterator();

while(ite.hasNext()){

String lineStr = (String)ite.next();

lineColList.add(parseCSV(lineStr));

}

return lineColList;

}

}

down_info.asp?id=45288

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值