使用java将csv文件分割

原创 2005年03月02日 00:14:00

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

java实现文件的分割与合并

无非就是io流------------------------------------------------------- 实例类: 1.抽象类 import java.io.File; impor...
  • lbf5210
  • lbf5210
  • 2016年05月06日 14:17
  • 954

用Python实现大文本文件切割

用Python实现一个文本文件切割器
  • zhang_qxian
  • zhang_qxian
  • 2017年03月16日 17:27
  • 3408

java将数据写入到csv文件中

对于csv文件,因为要将数据分别的写入到每一个单元格中。用什么来分开当前单元格和下一个单元格之间呢?这里就用到了“  , ”逗号可以分割单元格。 举例说明: 我们这里用一个输出流将数据写入到csv文件...
  • Kiss_The_sky
  • Kiss_The_sky
  • 2016年10月28日 13:51
  • 3427

java读取csv文件内容(逗号分隔、回车换行文本)

java读取csv文件内容(逗号分隔、回车换行、文本)
  • vvv_110
  • vvv_110
  • 2017年06月06日 10:58
  • 2221

利用java语言将csv格式数据导入mysql数据库

利用java语言将csv格式数据导入mysql数据库 1.     首先要下载Connector/J,及将该驱动包加载到project中,见http://www.cnblogs.com/taoweij...
  • u010442302
  • u010442302
  • 2016年01月16日 22:30
  • 2151

切割csv文件

使用csv文件写好对应的图片 名字 ID 地图 类型 等,然后生成csv文件使用逗号分隔开,然后在代码中取得里面的每个字符串然后通过逗号切割开存入二维数组然后就可以通过对应的位置取得对应的ID想要的属...
  • qianpaishafa
  • qianpaishafa
  • 2016年07月30日 08:23
  • 112

通过java导入csv文件到oracle(mysql)数据库

如何将通过java代码将csv文件导入oracle(mysql)数据库,本程序可导入,可合并。...
  • John_laishaobin
  • John_laishaobin
  • 2015年05月23日 10:45
  • 3384

java将数据写入csv文件,从csv文件中读取数据

全栈工程师开发手册 (作者:栾鹏) java教程全解 java将数据写入csv文件,从csv文件中读取数据测试代码 public static void main(String[...
  • luanpeng825485697
  • luanpeng825485697
  • 2017年10月05日 19:46
  • 2162

java将数据写入到csv文件

对于csv文件,因为要将数据分别的写入到每一个单元格中。用什么来分开当前单元格和下一个单元格之间呢?这里就用到了“  , ”逗号可以分割单元格。 举例说明: 我们这里用一个输出流将数据写入到csv...
  • yehui18sui
  • yehui18sui
  • 2013年05月02日 09:21
  • 2157

java 导出csv格式(支持list的实体类)

做的网页项目,要导出pdf使用itext工具,要是excel就使用jxl的jar包,导出csv格式的话,就可以使用如下工具类,参考的博主是http://blog.csdn.net/xuxu198899...
  • omayyouhappy
  • omayyouhappy
  • 2016年12月23日 14:22
  • 3845
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用java将csv文件分割
举报原因:
原因补充:

(最多只允许输入30个字)