import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.List;
import java.util.StringTokenizer; public class CsvResolve { public List<String[]> readCsv(String csvfilePath,String encodingCharSet)
{
List<String[]> resultList=new ArrayList<String[]>();
try {
FileInputStream csvfileInputStream = new FileInputStream(csvfilePath);
InputStreamReader csvfileInputStreamReader = new InputStreamReader(csvfileInputStream , encodingCharSet);
BufferedReader csvfileBufferedReader = new BufferedReader(csvfileInputStreamReader);
String line = csvfileBufferedReader.readLine();
String[] firstLineElements=line.split("\t");
//输出第一行的内容
for(int i=;i<firstLineElements.length;i++)
{
System.out.println(i+"\t"+firstLineElements[i]);
}
System.out.println(); while ((line = csvfileBufferedReader.readLine()) != null) {
String[] otherLineElements=line.split("\t");
//如果结尾处有一个或多个tab键,说明,最后缺失的有元素
//先把字符串数组转化为list,让后添加元素,然后再把添加完元素的list
//转化为字符串数组 if(otherLineElements.length<firstLineElements.length)
{
String[] toaddOtherLineElements;
List<String> tempList=new ArrayList<String>();
int i=;
for(;i<otherLineElements.length;i++)
{
if(otherLineElements[i].equals(""))
{
tempList.add(null);
}else{
tempList.add(otherLineElements[i]);
}
}
for(;i<firstLineElements.length;i++)
{
tempList.add(null);
}
toaddOtherLineElements=tempList.toArray(new String[]);;
resultList.add(toaddOtherLineElements);
}
//如果长度相同说明最后的元素存在
else{
String[] toaddOtherLineElements;
List<String> tempList=new ArrayList<String>();
int i=;
for(;i<otherLineElements.length;i++)
{
if(otherLineElements[i].equals(""))
{
tempList.add(null);
}else{
tempList.add(otherLineElements[i]);
}
}
toaddOtherLineElements=tempList.toArray(new String[]);;
resultList.add(toaddOtherLineElements);
}
} csvfileBufferedReader.close(); } catch (FileNotFoundException e) {
// 捕获File对象生成时的异常
e.printStackTrace();
} catch (IOException e) {
// 捕获BufferedReader对象关闭时的异常
e.printStackTrace();
}
return resultList; } public static void main(String[] args) {
CsvResolve csvResolve=new CsvResolve(); List<String[]> csvContent=csvResolve.readCsv("d:/csv/1.csv","utf-8");
for(int i=;i<csvContent.size();i++)
{
String[] temp=csvContent.get(i);
for(int j=;j<temp.length;j++)
{
System.out.println(j+"\t"+temp[j]);
}
System.out.println();
} } }

lal的更多相关文章

  1. LAL v0.32.0发布,更好的支持纯视频流

    Go语言流媒体开源项目 LAL 今天发布了v0.32.0版本.距离上个版本刚好一个月时间,LAL 依然保持着高效迭代的状态. LAL 项目地址:https://github.com/q19120177 ...

  2. 利用Bootstrap快速搭建个人响应式主页(附演示+源码)

    1.前言 我们每个程序员都渴望搭建自己的技术博客平台与他人进行交流分享,但使用别人的博客模板没有创意.做网站后台的开发人员可能了解前端,可是自己写一个不错的前端还是很费事的.幸好我们有Bootstra ...

  3. js实现多张图片每隔一秒换一张图片

    aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlkAAAHWCAIAAADLlAuAAAAgAElEQVR4nOzd5XNc157w+/l7bt2n6t

  4. java web学习总结(十一) -------------------基本概念使用Cookie进行会话管理

    一.会话的概念 会话可简单理解为:用户开一个浏览器,点击多个超链接,访问服务器多个web资源,然后关闭浏览器,整个过程称之为一个会话. 有状态会话:一个同学来过教室,下次再来教室,我们会知道这个同学曾 ...

  5. ubuntu 13.10 monodevelop3 安装

    版本 ubuntu 13.10 桌面模式默认:unity :文件管理器:nautilus

  6. Tomcat双向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端超安全通信

    紧接着<Tomcat单向Https验证搭建,亲自实现与主流浏览器.Android/iOS移动客户端安全通信>,此处演示下更安全的双向Https认证的通信机制,为了清晰明了,以下进行单独描述 ...

  7. Tomcat单向Https验证搭建,亲自实现与主流浏览器、Android/iOS移动客户端安全通信

    众所周知,iOS9已经开始在联网方面默认强制使用Https替换原来的Http请求了,虽然Http和Https各有各的优势,但是总得来说,到了现在这个安全的信息时代,开发者已经离不开Https了. 网上 ...

  8. linux下的触控板手势xSwipe and tag

    这个最初是采用的touchegg.开始没有效果,后来网上发现是因为需要禁用系统的2指3指操作参考 http://askubuntu.com/questions/266057/cant-get-touc ...

  9. js 有用的代码

    1. 如何创建嵌套的过滤器: //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“s ...

随机推荐

  1. HTML快速入门3

    四.表格 (Table) 1. 表格的基本形式 表由 <table> 开始, </table> 结束,表的内容由 <tr>,<th> 和 <td& ...

  2. linux下cp目录时排除一个或者多个目录的方法

    说明:/home目录里面有data目录,data目录里面有a.b.c.d.e五个目录,现在要把data目录里面除过e目录之外的所有目录拷贝到/bak目录中 系统运维 www.osyunwei.com ...

  3. 深入了解PooledConnectionFactory CachingConnectionFactory Sin

    深入理解PooledConnectionFactory CachingConnectionFactory SingleConnectionFactory PooledConnectionFactory ...

  4. Binary Tree Level Order Traversal

    Given a binary tree, return the level order traversal of its nodes' values. (ie, from left to right, ...

  5. css+div绝对定位

    <head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" ...

  6. MPlayer-ww 增加边看边剪切功能+生成高质量GIF功能

    http://pan.baidu.com/s/1eQm5a74 下载FFmpeg palettegen paletteuse documentation 需要下载 FFmpeg2.6 以上 并FFmp ...

  7. javascript的onbeforeunload函数在IOS上运行

    今天在做项目的时候,组长让我用iPad测试一下前面写的离线缓存,后退不刷新页面,发现在iPad上onbeforeunload函数在iPad上一带而过,不运行??? 无奈之下,发现原来在IOS上,有自己 ...

  8. VS 高亮显示不带后缀的C++头文件

    工具-选项-文本编辑器-文件扩展名-勾选“将无扩展名文件映射到(M)” Microsoft Visual C++

  9. Step deep into GLSL

    1 Lighting computation is handled in eye space(需要根据眼睛的位置来计算镜面发射值有多少进入眼睛), hence, when using GLSL (GP ...

  10. WordPress环境配置与安装

    要安装wordpress,要安装apache,php,mysql,还要进行一系列复杂的配置,较为复杂. apache安装 php5.5.6 下载链接:http://windows.php.net/do ...