手机站
网通分站
电信主站
密 码:
用户名:
热门关键字:  虚拟主机  cn域名  asd  ddd  域名注册
当前位置 : 主页>程序设计>Java技术>列表

使用java将csv文件分割

来源:互联网 作者:west263.com 时间:2008-02-23 点击:
西部数码-全国虚拟主机10强!40余项虚拟主机管理功能,全国领先!双线多线虚拟主机南北访问畅通无阻!免费赠送企业邮局,.CN域名,自助建站480元起,免费试用7天,满意再付款! P4主机租用799元/月.月付免压金!

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;
}
}

上一篇: Spring Framework 1.1.5 has just been released
下一篇: servlet彩色验证码

文章整理:西部数码--专业提供域名注册虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

最新评论共有 0 位网友发表了评论
发表评论
评论内容:不能超过250字,需审核,请自觉遵守互联网相关政策法规。
用户名: 密码:
匿名
注册